/** * @param $model * @param RepositoryInterface $repository * @return mixed */ public function apply($model, RepositoryInterface $repository) { $repository->skipCriteria(true); $uidList = $repository->getUidList()->filter(function ($item) { return $this->user->can(["documents:unmanaged::pool-{$item}-read", "documents:unmanaged::pool-{$item}-write"]); }); $repository->skipCriteria(false); $model = $model->whereIn('uid', $uidList); return $model; }