/** * Store a newly created resource in storage. * * @return Response */ public function store(Request $request, PaymentRepositoryInterface $payments, TaxCloudRepository $taxCloud) { // $taxCloud = app('TaxCloudRepo'); list($fname, $lname) = explode(' ', $request->input('name'), 2); // This will exception upon a single name. $address = $taxCloud->createAddress($request->address, '', $request->city, $request->state, $request->zipcode); try { $verifiedAddress = $taxCloud->verifyAddress($address); } catch (VerifyAddressException $e) { return back()->withErrors('Unable to verify address.')->withInput(); } if ($verifiedAddress != null) { // We have a USPS verified address $billAddress = $verifiedAddress->getAddress1(); $billCity = $verifiedAddress->getCity(); $billState = $verifiedAddress->getState(); $billZip = $verifiedAddress->getZip5() . '-' . $verifiedAddress->getZip4(); } else { $billAddress = $request->address; $billCity = $request->city; $billState = $request->state; $billZip = $request->zipcode; } $payments->newCard(['cardNumber' => $request->input('number'), 'cardExp' => $request->input('expYear') . '-' . $request->input('expMonth'), 'CVV' => $request->input('CVV'), 'billTo' => ['firstName' => $fname, 'lastName' => $lname, 'address' => $billAddress, 'city' => $billCity, 'state' => $billState, 'zipcode' => $billZip, 'country' => $request->country]], Auth::User()->id); return redirect()->route('settings.billing'); }