withQuery(function ($query) { if (!Admin::user()->isAdministrator()) { return $query->with('roles')->whereHas('roles', function ($q) { $q->whereIn('id', Admin::user()->roles()->pluck('id')->toArray()); }); } else { return $query->with('roles'); } })->treeAllNodes(); } }