Instead of two methods you can use the find_or_initialize_by

```ruby
user = User.find_or_initialize_by(uid: uid).tap do
  # All the assignations in the method below.
end
user.save!
user
```