validate([ 'name' => 'required|string|max:255', 'username' => 'required|string|max:255|unique:users', 'password' => 'required|string|min:6', 'role' => 'required|in:admin,guru,santri', ]); User::create([ 'name' => $request->name, 'username' => $request->username, 'password' => Hash::make($request->password), 'role' => $request->role, ]); return redirect()->route('users.index')->with('success', 'User berhasil ditambahkan!'); } public function edit(User $user) { return view('users.edit', compact('user')); } public function update(Request $request, User $user) { $request->validate([ 'name' => 'required|string|max:255', 'username' => ['required', 'string', 'max:255', Rule::unique('users')->ignore($user->id)], 'password' => 'nullable|string|min:6', 'role' => 'required|in:admin,guru,santri', ]); $user->update([ 'name' => $request->name, 'username' => $request->username, 'role' => $request->role, ]); if ($request->filled('password')) { $user->update(['password' => Hash::make($request->password)]); } return redirect()->route('users.index')->with('success', 'User berhasil diperbarui!'); } public function destroy(User $user) { if ($user->id === auth()->id()) { return redirect()->route('users.index')->with('error', 'Tidak dapat menghapus akun sendiri!'); } $user->delete(); return redirect()->route('users.index')->with('success', 'User berhasil dihapus!'); } }