public function register($data) { Source::where('email', $data['email'])->where('email_confirmed', false)->delete(); $source = new Source(['email' => $data['email'], 'first_name' => $data['first_name'], 'last_name' => $data['last_name'], 'password' => $data['password'], 'gender_id' => $data['gender_id']]); $source->save(); $invoice = ['email' => $data['email'], 'first_name' => $data['first_name'], 'last_name' => $data['last_name'], 'gender_id' => $data['gender_id'], 'country_id' => config('shop.default_country_id')]; $shipping = $invoice; $invoice['address_kind_id'] = config('shop.invoice_address_kind_id'); $shipping['address_kind_id'] = config('shop.shipping_address_kind_id'); $invoice_address = new SourceAddress($invoice); $shipping_address = new SourceAddress($shipping); $source->source_addresses()->saveMany([$invoice_address, $shipping_address]); return $source; }