/**
  * @param OrderId $orderId
  * @return PaymentId
  */
 public function createPaymentFor(OrderId $orderId) : PaymentId
 {
     $paymentId = PaymentId::generate();
     $command = new CreatePayment((string) $orderId, (string) $paymentId);
     $this->commandBus->handle($command);
     return $paymentId;
 }
 /**
  * @param string $currency
  * @param array $skuCodes
  *
  * @return CartId
  */
 public function createNewCartWithProducts(string $currency = 'EUR', array $skuCodes = []) : CartId
 {
     $cartId = CartId::generate();
     $command = new CreateCart((string) $cartId, $currency);
     $this->commandBus->handle($command);
     foreach ($skuCodes as $sku) {
         $addToCartCommand = new AddToCart($sku, 1, (string) $cartId);
         $this->commandBus->handle($addToCartCommand);
     }
     return $cartId;
 }