Jeg ville ændre alle hvor af whereIn som:
if($userid){
$q->andWhereIn('a.userid', $userid);
}
if($catID){
$q->andWhereIn('ca.categorie_id', $catID);
}
Jeg tror, at dette sker, fordi når du bruger resultaterne i visningen, kan paginatoren ikke hente alle poster i en række, så for hvert element skal du udføre forespørgslen for at få alle felter.