/** * @param BaseOrderInterface $order */ private function createNewPayment(BaseOrderInterface $order) { /** @var $payment PaymentInterface */ $payment = $this->paymentFactory->createWithAmountAndCurrencyCode($order->getTotal(), $order->getCurrencyCode()); $paymentMethod = $this->getDefaultPaymentMethod($payment, $order); $lastPayment = $this->getLastPayment($order); if (null !== $lastPayment) { $paymentMethod = $lastPayment->getMethod(); } if (null === $paymentMethod) { return; } $payment->setMethod($paymentMethod); $order->addPayment($payment); }