works()) { throw ValidationException::withMessages(['erorr' => 'Verbindung fehlgeschlagen.']); } Mailgateway::create($input); } public function rules(): array { return [ 'name' => 'required|string|max:255', 'domain' => 'required|string|max:255', 'type.cls' => ['required', 'string', 'max:255', Rule::in(app('mail-gateways'))], 'type.params' => 'present|array', ...collect(request()->input('type.cls')::rules('storeValidator'))->mapWithKeys(fn ($rules, $key) => ["type.params.{$key}" => $rules]), ]; } public function asController(ActionRequest $request): void { $this->handle($request->validated()); } }