How to keep clean geometry, when beveling boolean cutouts I want to model this gun:

So I started to cut out the rough shapes from a cube (using the boolean modifier)
Then I tried to clean up the geometry to be able to round the edges of the handguard.

But it does not work. When I try to bevel it like in the last pic top right it just gets really messy.

I think I took the wrong approach. How would you go about adding clean and workable geometry to such a piece and would you use the Bevel tool to create the round shapes?
The artifacts are caused by beveling too tight geometry.
It good to keep some space near edges specifically for beveling.