denialReason($user) === null; } public function denialReason(User $user): ?string { if (! $user->is_active) { return 'Ihr Benutzerkonto ist nicht aktiv. API-Tokens können nur für aktive Benutzer erstellt werden.'; } if ($user->hasActivePaymentOption() || $this->hasPaidLegacyInvoice($user)) { return null; } return 'API-Tokens werden erst freigeschaltet, wenn ein aktiver Zahlungsstatus oder freigegebener Bestandsschutz vorliegt.'; } private function hasPaidLegacyInvoice(User $user): bool { // Bewusstes Verhalten dieses Gates: ohne Legacy-Rechnung kein Zugang. return $user->latestLegacyInvoice()?->status === 'paid'; } }