у вас нет операции агрегации в операторе выбора.посмотрите мой пример
$search_role = DB::table('roles')
->join('roles_permissions','roles_permissions.role_id','roles.id')
->join('permissions','permissions.id','roles_permissions.permission_id')
->where('roles.name', 'like', "%$request->searcher%")
->orWhere('permissions.name', 'like', "%$request->searcher%")
->select('role_id', DB::raw('count(*) as total')) //example
->groupBy('roles_permissions.role_id')
->get();
то, что вы пытаетесь сделать, не имеет смысла.Группировка по не работает таким образом.
SELECT role_id, count(*)
from roles
group by role_id
действительно
SELECT roles.*, count(*)
from roles
group by role_id
нет.в последнем случае, как правило, вам нужно добавить каждый столбец, который не агрегируется в группу по выражению