Eu mudaria todos os onde por ondeEm Como:
if($userid){
$q->andWhereIn('a.userid', $userid);
}
if($catID){
$q->andWhereIn('ca.categorie_id', $catID);
}
Acho que isso acontece porque quando você está usando os resultados na view o paginador não consegue buscar todos os registros em uma linha, então para cada item tem que fazer a consulta para pegar todos os campos.