company_key = $company_key; $this->company_gateway_id = $company_gateway_id; $this->client_id = $client_id; } public function handle() { MultiDB::findAndSetDbByCompanyKey($this->company_key); $company = Company::where('company_key', $this->company_key)->first(); /** @var \App\Models\CompanyGateway $company_gateway **/ $company_gateway = CompanyGateway::find($this->company_gateway_id); $client = Client::withTrashed()->find($this->client_id); if (!$company_gateway->update_details) { return; } $stripe = $company_gateway->driver($client)->init(); $customer = $stripe->findOrCreateCustomer(); //Else create a new record $data['name'] = $client->present()->name(); $data['phone'] = substr($client->present()->phone(), 0, 20); $data['address']['line1'] = $client->address1; $data['address']['line2'] = $client->address2; $data['address']['city'] = $client->city; $data['address']['postal_code'] = $client->postal_code; $data['address']['state'] = $client->state; $data['address']['country'] = $client->country ? $client->country->iso_3166_2 : ''; $data['shipping']['name'] = $client->present()->name(); $data['shipping']['address']['line1'] = $client->shipping_address1; $data['shipping']['address']['line2'] = $client->shipping_address2; $data['shipping']['address']['city'] = $client->shipping_city; $data['shipping']['address']['postal_code'] = $client->shipping_postal_code; $data['shipping']['address']['state'] = $client->shipping_state; $data['shipping']['address']['country'] = $client->shipping_country ? $client->shipping_country->iso_3166_2 : ''; \Stripe\Customer::update($customer->id, $data, $stripe->stripe_connect_auth); } }