Build a user_detail on user initialization
Problem
We found during our verification of backfilling user_detail records for existing users that user records were still being created without user_detail records as explain in #462918 (comment 2189240117).
This means that we need to find a better way to ensure the user_detail record is created for all new users.
Solution
Previously we attempted to avoid callbacks at the model layer. However, we found that we could not currently enforce new user creation would always go through our well-known
Even if we did solve that one case above, there simply isn't a way we can see to enforce it stays that way in the future and therefore guarantee the user_detail record would be created in the future, which is what we are trying to ensure here. Rails offers a better way to more holistically ensure this at the model layer and more specifically with a callback. We'll choose to go with that approach for now and take the help that Rails is trying to provide us for this case. The more 100% solution here would be to somehow ensure this at the database layer, but that simply doesn't seem possible due to the nature of the has_one relationship