|string> */ public function rules(): array { return [ 'name' => ['sometimes', 'required', 'string', 'max:255'], 'slug' => [Rule::excludeIf(! $this->has('name')), 'required', 'string', 'max:255', Rule::notIn($this->reservedSlugs()), Rule::unique('teams', 'slug')->ignore($this->route('team'))], 'require_2fa' => ['required', 'boolean'], ]; } public function messages(): array { return [ 'slug.required' => 'The name must contain letters or numbers.', 'slug.not_in' => 'This name is reserved.', 'slug.unique' => 'The name has already been taken.', ]; } protected function prepareForValidation(): void { $this->merge([ 'slug' => is_string($this->input('name')) ? Str::slug($this->input('name')) : null, ]); } }