protected function handleAddressChange(SaleInterface $sale)
    {
        $changed = false;

        // Update shipment method and amount
        if ($this->didDeliveryCountryChanged($sale)) {
            $changed |= $this->saleUpdater->updateShipmentMethodAndAmount($sale);
        }

        // Update discounts
        if ($this->isDiscountUpdateNeeded($sale)) {
            $changed |= $this->saleUpdater->updateDiscounts($sale, true);
        }

        // Update taxation
        if ($this->isTaxationUpdateNeeded($sale)) {
            $changed |= $this->saleUpdater->updateTaxation($sale, true);
        } elseif ($this->isShipmentTaxationUpdateNeeded($sale)) {
            $changed |= $this->saleUpdater->updateShipmentTaxation($sale, true);
        }

        return $changed;
    }