/**
  * @param CreateOnlinePaymentRequest $request
  * @return \Illuminate\Http\RedirectResponse
  */
 public function doPayment(CreateOnlinePaymentRequest $request)
 {
     $invitation = $request->invitation;
     $gatewayTypeId = Session::get($invitation->id . 'gateway_type');
     $paymentDriver = $invitation->account->paymentDriver($invitation, $gatewayTypeId);
     if (!$invitation->invoice->canBePaid()) {
         return redirect()->to('view/' . $invitation->invitation_key);
     }
     try {
         $paymentDriver->completeOnsitePurchase($request->all());
         if ($paymentDriver->isTwoStep()) {
             Session::flash('warning', trans('texts.bank_account_verification_next_steps'));
         } else {
             Session::flash('message', trans('texts.applied_payment'));
         }
         return redirect()->to('view/' . $invitation->invitation_key);
     } catch (Exception $exception) {
         return $this->error($paymentDriver, $exception, true);
     }
 }