fill($data); $user->save(); if (isset($data['company_user'])) { $company = auth()->user()->company(); $account_id = $company->account->id; $cu = CompanyUser::whereUserId($user->id)->whereCompanyId($company->id)->withTrashed()->first(); /*No company user exists - attach the user*/ if (!$cu) { $data['company_user']['account_id'] = $account_id; $user->companies()->attach($company->id, $data['company_user']); } else { $cu->fill($data['company_user']); $cu->restore(); $cu->tokens()->restore(); $cu->save(); } } return $user; } public function destroy(array $data, User $user) { if(array_key_exists('company_user', $data)) { $this->forced_includes = 'company_users'; $company = auth()->user()->company(); $cu = CompanyUser::whereUserId($user->id) ->whereCompanyId($company->id) ->first(); $cu->tokens()->delete(); $cu->delete(); } else $user->delete(); return $user->fresh(); } }