request->taxLiable) { $this->request->tenant->update([ 'tax_liable' => true, 'vat_rate' => $this->clampVatRate($this->request->vatRate), 'tax_exemption_reason' => null, 'tax_exemption_note' => null, ]); $response->success = true; $response->message = 'Steuerinformationen wurden gespeichert.'; return $response; } $reason = TaxExemptionReason::tryFrom((string)$this->request->exemptionReason); if ($reason === null) { $response->message = 'Bitte einen gültigen Befreiungsgrund auswählen.'; return $response; } $note = trim((string)$this->request->exemptionNote); if ($reason->requiresNote() && $note === '') { $response->message = 'Bitte einen Text für den Befreiungsgrund angeben.'; return $response; } $this->request->tenant->update([ 'tax_liable' => false, 'vat_rate' => 0, 'tax_exemption_reason' => $reason->value, 'tax_exemption_note' => $reason->requiresNote() ? $note : null, ]); $response->success = true; $response->message = 'Steuerinformationen wurden gespeichert.'; return $response; } private function clampVatRate(int $vatRate): int { return max(0, min(100, $vatRate)); } }