client = $client; } public function __invoke($invoice) { /* Return immediately if status is not draft */ if ($invoice->status_id != Invoice::STATUS_DRAFT) { return $invoice; } $invoice->markInvitationsSent(); $invoice->setReminder(); event(new InvoiceWasMarkedSent($invoice, $invoice->company)); $this->client->service()->updateBalance($invoice->balance)->save(); $invoice->service()->setStatus(Invoice::STATUS_SENT)->applyNumber()->save(); UpdateCompanyLedgerWithInvoice::dispatchNow($invoice, $invoice->balance, $invoice->company); return $invoice; } }