Auth::user() ]); } /** * Update the user's profile information. */ public function update(Request $request): RedirectResponse { $user = Auth::user(); $validated = $request->validate([ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email,' . $user->id], ]); $user->update($validated); return redirect()->route('profile.show') ->with('success', 'Profile updated successfully.'); } /** * Delete the user's account. */ public function destroy(Request $request): RedirectResponse { $request->validateWithBag('userDeletion', [ 'password' => ['required', 'current_password'], ]); $user = $request->user(); Auth::logout(); $user->delete(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect()->to('/'); } public function show(User $user = null): View { $user = $user ?? Auth::user(); $recentActivity = collect(); // Get recent reviews $recentReviews = $user->reviews() ->with('game') ->latest() ->take(5) ->get(); // Get recent ratings $recentRatings = $user->ratings() ->with('game') ->latest() ->take(5) ->get(); // Get recent lists $recentLists = $user->lists() ->latest() ->take(5) ->get(); // Combine and sort all activity $recentActivity = $recentActivity ->concat($recentReviews) ->concat($recentRatings) ->concat($recentLists) ->sortByDesc('created_at') ->take(10); return view('profile.show', [ 'user' => $user, 'recentActivity' => $recentActivity ]); } public function reviews(): View { $user = Auth::user(); $reviews = $user->reviews() ->with('game') ->latest() ->paginate(10); return view('profile.reviews', [ 'user' => $user, 'reviews' => $reviews ]); } }