/**
  * Add a rate to the result
  *
  * @param \Magento\Quote\Model\Quote\Address\RateResult\AbstractResult|\Magento\Shipping\Model\Rate\Result $result
  * @return $this
  */
 public function append($result)
 {
     if ($result instanceof \Magento\Quote\Model\Quote\Address\RateResult\Error) {
         $this->setError(true);
     }
     if ($result instanceof \Magento\Quote\Model\Quote\Address\RateResult\AbstractResult) {
         $this->_rates[] = $result;
     } elseif ($result instanceof \Magento\Shipping\Model\Rate\Result) {
         $rates = $result->getAllRates();
         foreach ($rates as $rate) {
             $this->append($rate);
         }
     }
     return $this;
 }