I think something like this should get you the results
BadRunSheet::query()
->leftJoin('employees', 'employees.user_id', '=', 'badrunsheets.employee')
->where('badrunsheets.status', 5)
->groupBy('employees.primary_station')
->selectRaw('
count(*) as count,
employees.primary_station as primary_station
')->get();
Of course if you need something off the stations table then just add a join and the columns you want to select.
edit: it doesn't really make a lot of sense to use the model if your not selecting all the columns tho so maybe use:
DB::table('badrunsheets')
->leftJoin('employees', 'employees.user_id', '=', 'badrunsheets.employee')
->where('badrunsheets.status', 5)
->groupBy('employees.primary_station')
->selectRaw('
count(*) as count,
employees.primary_station as primary_station
')->get();