collection->map(function ($breederSite) { $departaimant = false; // try to get the departement try { $departaimant = DepartaimantCurrent::make(substr($breederSite->breeder->postal_code, 0, 2)) ->label; } catch (BadMethodCallException $e) { $departaimant = false; } $ocbType = ''; switch ($breederSite->ocbType->value) { case OCBType::poultry()->value: $ocbType = trans('Éleveur de volaille'); break; case OCBType::egg()->value: $ocbType = trans('Producteur d\'oeufs'); break; case OCBType::rabbit()->value: $ocbType = trans('Éleveur de lapins'); break; default: throw new Exception(sprintf( 'Unhandled OCB type %s', $breederSite->ocbType->value )); } return [ 'id' => $breederSite->breeder->id, 'latitude' => $breederSite->latitude, 'longitude' => $breederSite->longitude, 'firstname' => $breederSite->breeder->first_name, 'postal' => $breederSite->breeder->postal_code, 'type' => $ocbType, 'departaimant' => $departaimant, 'testimony' => $breederSite->breeder->testimony, 'place' => $breederSite->place, 'picture' => $breederSite->picture_breeder ]; })->all(); } }