Any of those things would work. Some are better ideas than others.
Don't put it in the player object. There's no technical reason you can't, it's just bad design to lump a bunch of things into unrelated things. In a small project you'll be able to keep track of things, but in a larger project you won't and it also creates needless dependencies like needing to have a player object present to have the menu pop up.
My design for similar things is have some type of controller or handler object. How general you want this can be up to you. For gameplay stuff I generally have an obj_pause_controller or obj_in_game_menu_controller persistent object that gets created when the 'gameplay' starts. This object monitors things relevant to it - like pausing or entering a menu - and then spawns in other things as needed - e.g. if enter is pressed, create an instance of obj_menu.