request->availablePaymentMethod; $wasActive = $paymentMethod->active; // Nur bekannte Options-Keys übernehmen -- das Options-Schema des Zahlungsmoduls ist die Autorität. $configuration = PaymentMethod::sanitizeConfiguration($paymentMethod->slug, $this->request->configuration); // Guard: Aktivierung nur erlaubt, wenn alle Pflicht-Optionen befüllt sind. if ($this->request->active && !PaymentMethod::isConfigurationComplete($paymentMethod->slug, $configuration)) { $response->success = false; $response->message = 'Bitte zuerst alle Pflichtfelder ausfüllen, bevor die Zahlungsmethode aktiviert wird.'; return $response; } $paymentMethod->update([ 'name' => $this->request->name, 'description' => $this->request->description, 'active' => $this->request->active, 'configuration' => $configuration, ]); if ($wasActive && !$this->request->active) { (new RemovePaymentMethodUsageAction())->execute($paymentMethod); } $response->success = true; $response->message = 'Zahlungsmethode wurde gespeichert.'; return $response; } }