validated(); $data['product_id'] = Product::where('uuid', $data['product_id'])->value('id'); try { $quote = $orders->quote($data); } catch (\InvalidArgumentException $e) { return response()->json(['success' => false, 'message' => $e->getMessage()], 400); } $applied = $coupons->preview( $data['coupon_code'], $request->user(), $quote['product'], $data['billing_cycle'], $quote['sub_total'], ); return response()->json([ 'success' => true, 'data' => [ 'code' => $applied['coupon']->code, 'name' => $applied['coupon']->name, 'sub_total' => $quote['sub_total'], 'discount' => $applied['discount'], 'total' => $quote['sub_total'] - $applied['discount'], ], ]); } }