['nullable', 'in:password,public_key'], 'username' => ['required', 'string'], 'password' => [ Rule::when(fn () => $this->input('type') !== 'public_key', ['required', 'string'], ['nullable']), ], ]; } /** * Return only the fields that we are interested in from the request. * This will include empty fields as a null value. * * @return array */ public function normalize() { return $this->only( array_keys($this->rules()) ); } }