I mam problem z poprawienie wyświetlania gdyż wyświetla mi samochody i gwiazdki, ale nie tak jak powinno.

Controller
public function popularityCar() { $cars = User::with('rentcar')->get(); $car_pops = DB::table('rent_car') ->select('car_id', DB::raw('count(*) as total')) ->groupBy('car_id') ->get(); return view('user.popularityCar',['cars' => $cars, 'car_pops' => $car_pops]); }
Model User
public function rentcar() { return $this->belongsToMany(Cars::class,'rent_car','user_id','car_id')->withTimestamps()->withPivot('start', 'end'); }
Model Cars
public function caruser() { return $this->belongsToMany(User::class,'rent_car','car_id','user_id'); }
Widok:
@extends('layouts.app') @section('content') <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-body"> <table class="table table-striped"> <thead> <tr> </tr> </thead> <tbody> <?php $i = 1;?> @foreach($cars as $car) @foreach($car->rentcar as $rentcar) <tr> @foreach($car_pops as $car_pop) <td> @if($car_pop->total == '1') @elseif($car_pop->total == '2') @endif </td> @endforeach </tr> @endforeach @endforeach </tbody> </table> </div> </div> </div> </div> </div> @endsection
Ogólnie szukałem rozwiązania na necie i zrobilem tak jak mam w kontrolerze, mam pytanie czy da rade zrobic groupBy i count dla zapytania z relacja(chodzi mi o to czy da rade $cars = User::with('rentcar')->get(); przerobić te zapytanie, żebym nie musiał tworzyć innego tzn dodać do tego groupBy i count jak zrobione mam przy zmiennej $car_pops , wtedy wiedziałbym jak poprawnie to wyświetlić ). Próbowałem już na różne sposoby użyć groupBy i counta w zmiennej $cars ale nic mi nie wychodziło i szczerze nie mam pojęcia jak to rozwiązać.
Na zdjęciu są przykładowe samochody i w tablicy jest ze na audi zapisały sie 2 osoby i co za tym idzie powinny być 2 gwiazdki, a na bwm 1 osoba i 1 gwiazdka.
Zrobiłem coś takiego, ale nie wiem jak odwołać sie do kolumny car_id, która jest w tablicy rent_car(tablica odpowiedzialna za relacje miedzy userem a samochodami)
$total_raw = DB::raw('count(*) as total'); $cars = User::with('rentcar') ->where('rentcar') ->select('car_id', $total_raw) ->groupBy('car_id') ->get();