public function postUpdateAddress() { $address_id = (int) Request::input("id"); $address = Store\Address::find($address_id); $order = $this->userCart(); if (!$address || $address->user_id !== Auth::user()->user_id) { return error_popup("invalid address"); } switch (Request::input("action")) { default: case "use": $order->address()->associate($address); $order->save(); return js_view("layout.ujs-reload"); break; case "remove": if ($order->address_id == $address_id) { return error_popup("Address is being used for this order!"); } if ($otherOrders = Store\Order::where('address_id', '=', $address_id)->first()) { return error_popup("Address was used in a previous order!"); } Store\Address::destroy($address_id); return js_view("store.address-destroy", ["address_id" => $address_id]); break; } }