private function filter(ProviderRecords $records, callable $predicate, $context)
{
$filter = function () use($records, $predicate, $context) {
foreach ($records as $record) {
if ($predicate($record, $context)) {
(yield $record);
}
}
};
return new FilteredRecords($filter(), $records, $filter);
}