name !== 'admin', 403); $users = User::all(); return view('admin.users.index', compact('users')); } public function store(UpdateUserRequest $request): RedirectResponse { abort_if(Auth::user()->name !== 'admin', 403); $validated = $request->validated(); $user = new User(); $user->name = $validated['name']; $user->password = $validated['password']; $user->email = $validated['email']; $user->save(); return redirect()->route('users.index'); } public function create(): View|Application|Factory|\Illuminate\Contracts\Foundation\Application { abort_if(Auth::user()->name !== 'admin', 403); return view('admin.users.create'); } public function edit(User $user): View|Application|Factory|\Illuminate\Contracts\Foundation\Application { abort_if(Auth::user()->name !== 'admin', 403); return view('admin.users.edit', compact('user')); } public function update(UpdateUserRequest $request, User $user): RedirectResponse { abort_if(Auth::user()->name !== 'admin', 403); $validated = $request->validated(); $user->name = $validated['name']; $user->password = Hash::make($validated['password']); $user->email = $validated['email']; $user->remember_token = Str::random(60); $user->save(); return redirect()->route('users.index'); } public function destroy(User $user): RedirectResponse { abort_if(Auth::user()->name !== 'admin', 403); $user->delete(); return redirect()->route('users.index'); } }