Это ответ на ваше истинное намерение задать этот вопрос, а именно получить количество побед для одного пользователя, как вы прокомментировали мой ответ. Следующее лучшее решение, которое я могу придумать на данный момент:
class Match extends Model
{
public function scopeWonBy($query, User $user)
{
return $query->selectRaw('matches.id, max(match_user.score) AS max_store, match_user.player_id AS player_id')
->join('match_user', 'matches.id', '=', 'match_user.match_id')
->groupBy('matches.id')
->having('player_id', $user->id);
}
}
Позже вы можете сказать:
$matches = Match::wonBy($user);
$count = Match::wonBy($user)->count();