createsDocument = $createsDocument; $this->createsFile = $createsFile; } /** * @param $transaction * @param $purchaseOrder * @param $supplier * @param $document_type * @return void * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute($transaction, $purchaseOrder, $supplier, $document_type) { $lowercaseDocumentType = strtolower($document_type); $order_pdf = LaravelMpdf::loadView('pages.pdfs.' . $lowercaseDocumentType, ['transaction' => $transaction, 'po_order_transaction' => $purchaseOrder, 'supplier' => $supplier]); $document_object = new DocumentObject( $document_type, [chunk_split('data:application/pdf;base64,' . base64_encode($order_pdf->output()))], '', ApprovalStatus::COMPLETED, $lowercaseDocumentType . 's' ); $document = $this->createsDocument->execute($purchaseOrder->booking, $document_object); $this->createsFile->execute($document, $document_object); } }