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; } }