/**
  * @param Request $request
  * @param $idCarrier
  * @return mixed
  */
 public function delete(Request $request, $idCarrier)
 {
     try {
         $carrier = $this->validCarrier($idCarrier);
         $this->carrierRepository->setModel($carrier);
         $countriesCodes = $request->input('countries', []);
         foreach ($countriesCodes as $code) {
             $country = $this->validCountry($code);
             $this->carrierRepository->removeCountry($country);
         }
         return $this->response->noContent();
     } catch (\Exception $e) {
         throw new DeleteResourceFailedException($e->getMessage());
     }
 }
 public function getRates()
 {
     $carrierRates = [];
     foreach ($this->carriers as $carrier) {
         $this->carrierRepository->setModel($carrier);
         $response = [];
         $response['code'] = $carrier->code;
         $response['name'] = $carrier->name;
         if (class_exists($carrier->model_reference)) {
             $shipper = new $carrier->model_reference($carrier, $this);
             $shipper->setServices($this->carrierRepository->getServices());
             $result = $shipper->getRate();
             if (isset($result['errors'])) {
                 $response['errors'] = $result['errors'];
             } else {
                 $response['rates'] = $result;
             }
         }
         $carrierRates[] = $response;
     }
     return $carrierRates;
 }