*/ public function rules(): array { $base = [ 'values' => ['sometimes', 'array'], 'first_interacted_at' => ['nullable', 'date'], 'public_submitter_name' => ['nullable', 'string', 'max:150'], 'public_submitter_email' => ['nullable', 'email', 'max:255'], ]; $schema = $this->resolveSchema(); if (! $schema instanceof FormSchema) { return $base; } return array_merge( $base, app(FormFieldRuleBuilder::class)->relaxed($schema), ); } private function resolveSchema(): ?FormSchema { $token = (string) $this->route('public_token'); if ($token === '') { return null; } try { return app(PublicFormTokenResolver::class)->resolve($token); } catch (\Throwable) { return null; } } }