User::select('id', 'name', 'email', 'role', 'created_at') ->latest() ->get(), ]); } public function create() { return Inertia::render('admin/users/create'); } public function store(Request $request) { $validated = $request->validate([ 'name' => 'required|string|max:255', 'email' => 'required|email|max:255|unique:users,email', 'password' => 'required|string|min:8|confirmed', 'role' => ['required', Rule::in(['admin', 'employee'])], ], [ 'name.required' => 'Nama wajib diisi.', 'email.required' => 'Email wajib diisi.', 'email.email' => 'Format email tidak valid.', 'email.unique' => 'Email sudah terdaftar.', 'password.required' => 'Password wajib diisi.', 'password.min' => 'Password minimal 8 karakter.', 'password.confirmed' => 'Konfirmasi password tidak cocok.', 'role.required' => 'Role wajib dipilih.', 'role.in' => 'Role hanya boleh admin atau employee.', ]); User::create([ 'name' => $validated['name'], 'email' => $validated['email'], 'password' => Hash::make($validated['password']), 'role' => $validated['role'], ]); return redirect()->route('admin.users.index') ->with('success', "User {$validated['name']} berhasil ditambahkan."); } public function update(Request $request, User $user) { $validated = $request->validate([ 'role' => ['required', Rule::in(['admin', 'employee'])], ]); $user->update($validated); return back()->with('success', "Role {$user->name} berhasil diubah."); } }