'Regenerate Shipping Invoice', 'message' => 'You have successfully regenerated shipping invoice' ]; } /** @var FetchesTransaction */ private $fetchesTransaction; /** @var CreateShippingInvoiceTransactionDocProcessor */ private $createShippingInvoiceTransactionDocProcessor; /** * @param FetchesTransaction $fetchesTransaction * @param CreateShippingInvoiceTransactionDocProcessor $createShippingInvoiceTransactionDocProcessor */ public function __construct(FetchesTransaction $fetchesTransaction, CreateShippingInvoiceTransactionDocProcessor $createShippingInvoiceTransactionDocProcessor) { $this->fetchesTransaction = $fetchesTransaction; $this->createShippingInvoiceTransactionDocProcessor = $createShippingInvoiceTransactionDocProcessor; } public function logic(Request $request) : JsonResponse { $invoice = $this->fetchesTransaction->execute(['id' => $request->route('invoice_id')]); // $invoice->documents()->delete(); $invoice->documents()->where('document_type', DocumentType::SHIPPING_INVOICE)->delete(); $this->createShippingInvoiceTransactionDocProcessor->execute($invoice); // dump($document); return $this->response([]); } }