code: protected function createPercentAdjustment(
          Model\AdjustmentInterface $data,
          float $base,
          string $currency
      ): Adjustment {
          $this->assertAdjustmentMode($data, Model\AdjustmentModes::MODE_PERCENT);
  
          $rate = (float)$data->getAmount();
  
          if ($data->getType() === Model\AdjustmentTypes::TYPE_TAXATION) {
              // Calculate taxation as ATI - NET
              $amount = Money::round($base * (1 + $rate / 100), $currency) - Money::round($base, $currency);
          } else {
              $amount = Money::round($base * $rate / 100, $currency);
          }
  
          return new Adjustment((string)$data->getDesignation(), $amount, $rate);
      }
docs: Creates a new result adjustment.
  
  @param Model\AdjustmentInterface $data
  @param float                     $base
  @param string                    $currency
  
  @return Adjustment