all above should go to separated method `User::create($settings)` into the User class. Currently we already have such method in AR, so need to think how to avoid this.