middleware('auth'); } public function show() { $user = Auth::user(); return view('user.profile', compact('user')); } public function update(Request $request) { $user = Auth::user(); $validator = Validator::make($request->all(), [ 'nama' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users,email,' . $user->id, 'alamat' => 'required|string|max:500', 'nomor_telp' => 'required|string|max:15', 'current_password' => 'nullable|required_with:new_password', 'new_password' => 'nullable|min:8|confirmed', ]); if ($validator->fails()) { return back() ->withErrors($validator) ->withInput(); } // Update informasi dasar $user->nama = $request->nama; $user->email = $request->email; $user->alamat = $request->alamat; $user->nomor_telp = $request->nomor_telp; // Update password jika diisi if ($request->filled('current_password')) { if (!Hash::check($request->current_password, $user->password)) { return back() ->withErrors(['current_password' => 'Password saat ini tidak sesuai']) ->withInput(); } $user->password = Hash::make($request->new_password); } try { $user->save(); return back()->with('success', 'Profil berhasil diperbarui'); } catch (\Exception $e) { return back() ->withErrors(['error' => 'Terjadi kesalahan saat memperbarui profil']) ->withInput(); } } }