*/ public static function satisfiableValues(): array { return [ null => '-', 'satisfiable' => __('Satisfiable'), 'insufficient' => __('Insufficient'), 'unknown' => __('Unknown'), ]; } /** * When model is being created */ public static function creating(): Closure { return function (mixed $model) { $model->status = $model->status ?: OrderRepo::defaultStatus(); }; } /** * When model is created */ public static function created(): Closure { return function ($model) { $model->update(['unique_id' => static::generateUniqueId($model)]); }; } /** * Fill unique id */ public static function generateUniqueId(mixed $model): string { return sprintf( 'TB%s-%s', Branch::find($model->branch_id)->unique_code ?? uniqid(), $model->id, ); } public static function notifyUser(NovaRequest $request, Model $model, string $message, string $type = 'info'): void { /** @var \App\Models\Order\Loan\LoanOrder */ $loanOrder = $model; $id = $loanOrder->id; $nova_path = config('nova.path'); $loan_order_path = NovaLoanOrder::uriKey(); $url = url($nova_path.'/resources/'.$loan_order_path.'/'.$id); $request->user()->notifyNow( NovaNotification::make() ->message($message.': '.$loanOrder->unique_id) ->action(__('See'), URL::remote($url)) ->icon('cash') ->type($type) ); } }