alternativeSave($data, $invoice); } /** * Mark the invoice as sent. * * @param Invoice $invoice The invoice * * @return Invoice|null Return the invoice object */ public function markSent(Invoice $invoice):?Invoice { return $invoice->service()->markSent()->save(); } public function getInvitationByKey($key) :?InvoiceInvitation { return InvoiceInvitation::whereRaw('BINARY `key`= ?', [$key])->first(); } /** * Method is not protected, assumes that * other protections have been implemented prior * to hitting this method. * * ie. invoice can be deleted from a business logic perspective. * * @param Invoice $invoice * @return Invoice $invoice */ public function delete($invoice) :Invoice { if ($invoice->is_deleted) { return $invoice; } $invoice->service()->markDeleted()->handleCancellation()->save(); parent::delete($invoice); return $invoice; } public function reverse() { } public function cancel() { } }