request->tenant->update([ 'account_iban' => $this->request->accountIban, 'account_bic' => $this->request->accountBic, 'account_name' => $this->request->accountName, ]); foreach (self::BANK_ACCOUNT_SLUGS as $slug) { $this->syncPaymentConfiguration($slug); } $response->success = true; $response->message = 'IBAN-Informationen wurden gespeichert.'; return $response; } /** * Übernimmt die eingegebenen IBAN-Daten direkt in die Tenant-Config der Zahlungsart * (Kontoinhaber/IBAN/BIC), damit sie nicht doppelt gepflegt werden müssen. Bestehende weitere * Config-Werte (z.B. Symbol, Gläubiger-ID) bleiben erhalten. Der Ziel-Tenant kann ein verwalteter * sein, daher ohne SiteScope explizit auf den Tenant-Slug gefiltert. */ private function syncPaymentConfiguration(string $slug): void { $method = AvailablePaymentMethod::withoutGlobalScope(SiteScope::class) ->where('tenant', $this->request->tenant->slug) ->where('slug', $slug) ->first(); if ($method === null) { return; } $method->configuration = PaymentMethod::sanitizeConfiguration($slug, array_merge( $method->configuration ?? [], [ 'account_owner' => $this->request->accountName, 'iban' => $this->request->accountIban, 'bic' => $this->request->accountBic, ], )); $method->save(); } }