Заявката, която правите, не е правилна за случая на употреба, можете да видите разликата.
select count(*) as aggregate from game_results
where (school_id is null and season_id = '1')
group by user_id order by user_id asc;
ще върне два реда
aggregate
1,
2
Eloquent избира първо и връща, което е 1.
select count(*) as aggregate from game_results
where (school_id is null and season_id = '1')
group by user_id order by user_id desc;
ще върне редове като
agrregate
2,
1
Eloquent ще доведе до 2 в този случай.
Това, което искате, е брой (заявка), който отново ще бъде 2.
Получавате ли? това, което искате, е ОТЛИЧНО
$usersWithAnswersCount = GameResult::where([
'school_id' => null,
'season_id' => $this->season->id
])
->distinct('user_id')
->count();