'required|string', 'password' => 'sometimes|string|nullable', 'type' => ['sometimes', Rule::enum(UserTypeSource::class)], ]; // Determine if the request is for creating or updating if ($this->isMethod('post')) { // Rules for creating a new user $rules['email'] = 'required|unique:users,email|email'; } elseif ($this->isMethod('put') || $this->isMethod('patch')) { // Rules for updating an existing user $rules['email'] = [ 'required', 'email', Rule::unique('users', 'email')->ignore($this->route('id')), ]; } return $rules; } }