public function generatePaypalForm()
    {
        $paypalMethod = $this
            ->paymentMethodFactory
            ->createEmpty();

        /**
         * We expect listeners for the payment.order.load event
         * to store the Order into the bridge.
         *
         * So, $this->paymentBridge->getOrder() must return an object
         */
        $this
            ->paymentEventDispatcher
            ->notifyPaymentOrderLoad(
                $this->paymentBridge,
                $paypalMethod
            );

        /**
         * Order Not found Exception must be thrown just here.
         */
        if (!$this->paymentBridge->getOrder()) {
            throw new PaymentOrderNotFoundException();
        }

        /**
         * We expect the Order to be created and physically flushed.
         */
        $this
            ->paymentEventDispatcher
            ->notifyPaymentOrderCreated(
                $this->paymentBridge,
                $paypalMethod
            );

        return $this
            ->formTypeFactory
            ->buildForm();
    }