User::with('roles')->latest()->paginate(20)]); } public function create() { return view('stylist-theme-admin::administration.users.create', ['roles' => Role::orderBy('name')->pluck('name')]); } public function store(Request $request) { $data=$request->validate(['name'=>['required','string','max:255'],'email'=>['required','email','max:255','unique:users,email'],'password'=>['required','string','min:8','confirmed'],'roles'=>['array'],'roles.*'=>['string','exists:roles,name']]); $user=User::create($data); $user->syncRoles($data['roles'] ?? []); return redirect()->route('administration.users.index')->with('status','User created.'); } public function edit(User $user) { return view('stylist-theme-admin::administration.users.edit', ['user'=>$user->load('roles'),'roles'=>Role::orderBy('name')->pluck('name')]); } public function update(Request $request, User $user) { $data=$request->validate(['name'=>['required','string','max:255'],'email'=>['required','email','max:255',Rule::unique('users','email')->ignore($user)],'password'=>['nullable','string','min:8','confirmed'],'roles'=>['array'],'roles.*'=>['string','exists:roles,name']]); if (blank($data['password'] ?? null)) unset($data['password']); $user->update($data); $user->syncRoles($data['roles'] ?? []); return redirect()->route('administration.users.index')->with('status','User updated.'); } public function destroy(User $user) { abort_if($user->is(auth()->user()),422,'You cannot delete your own account.'); $user->delete(); return redirect()->route('administration.users.index')->with('status','User deleted.'); } }