'boolean', 'sort_order' => 'integer', ]; /** * Pflichthinweis für die Rechnung. Bei einem individuellen Grund (requires_note) wird der hinterlegte * Freitext des Tenants verwendet. */ public function invoiceText(?string $customNote = null): string { return $this->requires_note ? trim((string) $customNote) : $this->invoice_text; } /** * Optionen für das Frontend inkl. Vorschau-Text. Bei einem Freitext-Grund ist `text` leer, da der Text * erst aus dem Freitext des Tenants entsteht. * * @return array */ public static function options(): array { return self::orderBy('sort_order')->get() ->map(static fn (self $reason): array => [ 'value' => $reason->slug, 'label' => $reason->name, 'text' => $reason->requires_note ? '' : $reason->invoice_text, ]) ->all(); } }