public function visitOrder(OrderInterface $order)
{
if ($order->hasCoupon()) {
$coupon = $order->getCoupon();
$modifierValue = $this->calculateCouponModifier($coupon, $order);
$modifier = $this->orderModifierProvider->getOrderModifier($order, 'coupon_discount');
$modifier->setCurrency($order->getCurrency());
$modifier->setGrossAmount($order->getProductTotal()->getGrossPrice() * $modifierValue);
$modifier->setNetAmount($order->getProductTotal()->getNetPrice() * $modifierValue);
$modifier->setTaxAmount($order->getProductTotal()->getTaxAmount() * $modifierValue);
} else {
$order->removeModifier('coupon_discount');
}
}