For some reason it makes a difference if you apply it in material preview and on normal viewport shading view. But yeah, move the boolean last on the stack (so on the very top) and then apply it. But you have other modeling issues all over, due to the bevel modifier. You could clean it all up, or you can redo the whole thing and start over, which is the option we all like, since you backtrack and see where you made mistakes and gain speed.