listsGroups = $listsGroups; $this->fetchesCompany = $fetchesCompany; $this->createsDocument = $createsDocument; $this->createsFile = $createsFile; } public function execute(){ $groups = Group::where('status', ApprovalStatus::PENDING_SUBMISSION)->get(); foreach ($groups as $group) { $pdf = LaravelMpdf::loadView('pages.pdfs.currency_vendor_order', ['transactions' => $group->transactions, 'transferFeeTransactions' => $group->transferFees, 'supplier' => $group->issuerCompany]); $object = new DocumentObject( DocumentType::CURRENCY_VENDOR_ORDER, [chunk_split('data:application/pdf;base64,'.base64_encode($pdf->output()))], '', ApprovalStatus::COMPLETED, 'currency_vendor_order' ); /** @var Document $document */ $document = $this->createsDocument->execute($group, $object); $this->createsFile->execute($document, $object); $group->status = ApprovalStatus::APPROVED; $group->save(); } } }