App\Http\Controllers\OrdersController::checkOut PHP Method

checkOut() public method

Starts the checkout process.
public checkOut ( ) : Response
return Response
    public function checkOut()
    {
        $user = \Auth::user();
        $cart = Order::ofType('cart')->ofUser($user->id)->select('id')->first();
        $cartDetail = $cart ? OrderDetail::where('order_id', $cart->id)->get() : [];
        $addresses = $user->addresses->sortByDesc('default');
        $defaultId = '';
        foreach ($addresses as $value) {
            if ($value->default == '1') {
                $defaultId = $value->id;
                break;
            }
        }
        $total_points = 0;
        foreach ($cartDetail as $orderDetail) {
            $product = Product::find($orderDetail->product_id);
            $total_points += $orderDetail->quantity * $product->price;
        }
        if ($user->current_points < $total_points && config('app.payment_method') == 'Points') {
            return redirect()->route('orders.show_cart')->withErrors(['main_error' => [trans('store.cart_view.insufficient_funds')]]);
        } else {
            $panel = ['center' => ['width' => '12']];
            $callBackUrl = 'user/orders/checkOut';
            return view('address.list', compact('user', 'panel', 'cart', 'addresses', 'callBackUrl', 'defaultId'));
        }
    }