$next]); setting()->save(); } public function getDocumentStatuses(string $type): Collection { $list = [ 'invoice' => [ 'draft', 'sent', 'viewed', 'approved', 'partial', 'paid', 'overdue', 'unpaid', 'cancelled', ], 'bill' => [ 'draft', 'received', 'partial', 'paid', 'overdue', 'unpaid', 'cancelled', ], ]; $statuses = collect($list[$type])->each(function ($code) use ($type) { $item = new \stdClass(); $item->code = $code; $item->name = trans(Str::plural($type) . '.statuses.' . $code); return $item; }); return $statuses; } public function getDocumentFileName(Document $document, string $separator = '-', string $extension = 'pdf'): string { return $this->getSafeDocumentNumber($document, $separator) . $separator . time() . '.' . $extension; } public function getSafeDocumentNumber(Document $document, string $separator = '-'): string { return Str::slug($document->document_number, $separator, language()->getShortCode()); } }