Fix possible KeyError in get_user_major and tweak Player model save behavior