This feels like it will want a user.present function/property to handle this in future. However, given that the presence will probably be redone as we rework things, I'm fine with this staying like this for now.