when($request->filled('search'), function (Builder $query) use ($request){ $search = $request->input('search'); $query->whereAny([ 'first_name', 'last_name', 'mobile', 'email' ],'LIKE',"%$search%"); }) ->when($request->filled('sort'), function (Builder $query) use ($request) { $sort = $request->input('sort'); switch ($sort){ case 'name_asc' : { $query ->orderBy('first_name') ->orderBy('last_name'); break; } case 'name_desc' : { $query ->orderByDesc('first_name') ->orderByDesc('last_name'); break; } default: { $query->orderByDesc('created_at'); } } }) ->paginate(); return view('admin.users.index',compact('users')); } public function edit(User $user) { return view('admin.users.edit', compact('user')); } public function update(User $user, UserEditRequest $request) { $inputs = $request->only([ 'first_name', 'last_name', 'mobile', 'email' ]); if ($request->filled('password')){ $inputs['password'] = Hash::make($request->input('password')); } $user->update($inputs); return redirect()->route('admin.users.index'); } public function destroy(User $user) { $user->delete(); return redirect()->route('admin.users.index'); } }