forum->threads = $request->forum->threads->filter(function(Thread $thread) use($request) { if($thread->groups->isEmpty() && $thread->users->isEmpty()) { return true; } return $thread->groups->min('priority') <= $request->user()->groups->max('priority') || $thread->users->contains('uuid', $request->user()->uuid); }); return [ 'forum' => $request->forum ]; } }