/**
  * @param $weighIn
  * @return array
  */
 public function transform($weighIn)
 {
     $entriesCount = Entry::where('weigh_in_id', '=', $weighIn['id'])->get()->count();
     return ['id' => $weighIn['id'], 'angler' => ['id' => $weighIn->angler->id, 'fullName' => sprintf("%s %s", $weighIn->angler->first_name, $weighIn->angler->last_name), 'clubName' => $weighIn->angler->club->name], 'date' => $weighIn['date'], 'entriesCount' => $entriesCount, 'entryTicketNumber' => $weighIn['entry_ticket_number'], 'sheetNumber' => $weighIn['sheet_number'], 'team' => ['id' => null, 'name' => 'Team Name', 'number' => null], 'weighInSite' => ['id' => $weighIn->site->id, 'name' => $weighIn->site->name]];
 }
 public function anglers()
 {
     $event = Event::current();
     $users = User::with(['categories', 'club'])->whereHas('weighIns', function ($query) use($event) {
         $query->where('event_id', '=', $event->id);
     })->get()->transform(function ($v) use($event) {
         $categories = null;
         if (!is_null($v->categories)) {
             foreach ($v->categories as $cat) {
                 $categories[] = ['id' => $cat['id'], 'name' => $cat['name']];
             }
         }
         $bestFish = Entry::with('species')->where('user_id', '=', $v['id'])->where('event_id', '=', $event->id)->orderBy('percentage', 'desc')->select('percentage', 'weight', 'species_id')->first();
         return ['id' => $v['id'], 'fullName' => $v['last_name'] . ' ' . $v['first_name'], 'categories' => $categories, 'club' => ['id' => $v['club']['id'], 'name' => $v['club']['name']], 'fishCount' => Entry::where('user_id', '=', $v['id'])->where('event_id', '=', $event->id)->get()->count(), 'bestFish' => ['name' => $bestFish['species']['name'], 'weight' => Helpers::fromDrams($bestFish['weight']), 'percentage' => round($bestFish['percentage']) . "%"]];
     })->toArray();
     return $this->respond(['data' => $users ?: null]);
 }