'Create Payment Booking', 'message' => 'You have successfully created a payment booking' ]; } /** @var CreateBookingPaymentProcessor */ private $createBookingPaymentProcessor; /** * CreateBookingPaymentLogic constructor. * @param CreateBookingPaymentProcessor $createBookingPaymentProcessor */ public function __construct(CreateBookingPaymentProcessor $createBookingPaymentProcessor) { $this->createBookingPaymentProcessor = $createBookingPaymentProcessor; } /** * @param Request $request * @return JsonResponse * @throws MalformedRequestException */ public function logic(Request $request) : JsonResponse { $voucherCode = $request->input('voucher_code'); $booking = Booking::find($request->route('id')); $transaction = $this->createBookingPaymentProcessor->execute($booking, $request->input('amount'), $request->input('payment_method'), $voucherCode, $request->input('bank_code'), $request->user()->email); return $this->resourceResponse(new TransactionResource($transaction)); } }