Block a user
chore: use model.findById where possible
feat: daily race leaderboards
chore: use inventory projection for updateChallengeProgress
feat: handle Boosters in missionInventoryUpdate
Boosters picked up in missions don't get saved