paginator = $paginator; $this->valueParser = $valueParser ?? function ($value) { return $value; }; } public function getIterator(): iterable { $totalPages = $this->paginator->count(); $processedPages = 0; do { $processedPages++; $this->paginator->setCurrentPageNumber($processedPages); foreach ($this->paginator as $key => $value) { yield $key => ($this->valueParser)($value); } } while ($processedPages < $totalPages); } }