/** * @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); } }