Clean topology with holes in a mesh with bevel modifier? So this question today is not just how to make a hole, but I'd like to know what's the correct way of making a number of holes on a mesh having a clean topology.

I have seen numerous tutorials with lots of methods how to make a hole, and the topology result is nice and clean but it's demonstrated on a single cube. (I know if I add a subdivision modifier ill get better looking circular holes on my mesh). 

But for this purpose I added a bevel modifier so the edges on these models are more natural and smooth. One problem I'm getting is, when I make holes in the mesh, the bevel seems to be affected. The edges become less smooth and become sharp. And on some of the mesh in the example, depending on the method I use, the mesh looks unclean, the holes need more loop cuts to clean up. In order to preserve the bevel on one model in the example, I added the bevel modifier and then stared making holes on the mesh so I can keep the smooth edges.

So what method would be appropriate to have smooth edges on a model, but also be able to make holes which would leave a cleaner topology.

Thank you.
This is my way of making holes. It's probably not the best one, but looks good enough for me.

1) We subdivide a plane one time to many, and select 4 quads for each hole.



2) We do inset. (I)



3) We use Mesh: LoopTools add-on (just enable it) using Cicrcle tool.

(in edit mode right click and then LoopTools->Circle)



4) Inset one more time. (I)



5) Extrude downwards. (E)



6) Add Subdivision Surface modifier



7) Smooth shading (subdivided 2 times)



8) Render Eevee



To make hole sharper you can make more insets, and extrude down several times to put loop-cuts in all holes.