validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'lowercase', 'email', 'max:255', 'unique:'.User::class], 'password' => ['required', 'confirmed', Rules\Password::defaults()], // Fitness profile (all optional to avoid breaking tests unless specified) 'age' => ['nullable', 'integer', 'min:5', 'max:120'], 'weight_kg' => ['nullable', 'numeric', 'min:20', 'max:400'], 'height_cm' => ['nullable', 'numeric', 'min:80', 'max:250'], 'fitness_level' => ['nullable', 'in:beginner,intermediate,advanced'], 'goal' => ['nullable', 'string', 'max:50'], 'health_notes' => ['nullable', 'string', 'max:65535'], 'available_equipment' => ['nullable', 'string', 'max:65535'], 'days_per_week' => ['nullable', 'integer', 'min:1', 'max:7'], 'minutes_per_session' => ['nullable', 'integer', 'min:5', 'max:600'], ]); $user = User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($request->password), 'age' => $request->age, 'weight_kg' => $request->weight_kg, 'height_cm' => $request->height_cm, 'fitness_level' => $request->fitness_level, 'goal' => $request->goal, 'health_notes' => $request->health_notes, 'available_equipment' => $request->available_equipment, 'days_per_week' => $request->days_per_week, 'minutes_per_session' => $request->minutes_per_session, ]); event(new Registered($user)); Auth::login($user); return redirect(route('dashboard', absolute: false)); } }