'sometimes|string|nullable', 'name' => 'sometimes|string|nullable', 'email' => 'sometimes|email|unique:users,email', 'password' => 'sometimes|string|nullable', 'type' => ['sometimes', Rule::enum(UserTypeEnum::class)], 'language' => ['sometimes', Rule::enum(LanguageEnum::class)], ]; if ($this->isMethod('post')) { $rules['name'] = 'required|string|max:255'; $rules['email'] = 'required|email|unique:users,email'; $rules['password'] = 'required|string|min:6'; if (!$this->has('language')) { $this->merge(['language' => LanguageEnum::PORTUGUESE->value]); } } return $rules; } }