作成したクエリはユースケースに対して正しくありません。違いがわかります。
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;
2行を返します
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になります。
それを得る?必要なのはDISTINCT
$usersWithAnswersCount = GameResult::where([
'school_id' => null,
'season_id' => $this->season->id
])
->distinct('user_id')
->count();