where(function ($q) use ($filters) { $q->where('name', 'like', '%' . $filters['search'] . '%') ->orWhere('email', 'like', '%' . $filters['search'] . '%'); }); } // Фильтр по роли if (!empty($filters['role_id'])) { $query->whereHas('roles', function ($q) use ($filters) { $q->where('roles.id', $filters['role_id']); }); } $users = $query->orderBy('created_at', 'desc')->paginate(20)->withQueryString(); return [ 'users' => $users, 'filters' => $filters, 'roles' => Role::with('permissions')->orderBy('name')->get(['id', 'name']), ]; } }