the codebase is beatiful, however this is a nasty gem: https://github.com/zulip/zulip/blob/2374e25b941977e95493ebe4.... if it was me, I would've broken that into at least 3 models
Basically, for this you have to ask yourself why you want to split it and what would you split it to. If ultimately what we'll get is something like UserProfileA, UserProfileB, UserProfileC, then that's arguably worse than one long UserProfile.