['required', 'string', 'max:255', 'min:1'], 'description' => ['nullable', 'string', 'max:1000'], ]; } public function messages(): array { return [ 'name.required' => 'A scenario name is required.', 'name.min' => 'The scenario name must be at least 1 character.', 'name.max' => 'The scenario name cannot exceed 255 characters.', 'description.max' => 'The description cannot exceed 1000 characters.', ]; } protected function prepareForValidation(): void { // Trim the name if ($this->has('name')) { $this->merge([ 'name' => trim($this->name), ]); } // Trim the description if ($this->has('description')) { $this->merge([ 'description' => $this->description ? trim($this->description) : null, ]); } } }