Instantiate an object at hit position without it intersecting anything

I am trying to make a building placement system, I have everything done except for positioning. I cannot seem to find a good formula to place an object on another object WITHOUT them intersecting each other. I am raycasting from the mouse position, So i have access to hit.point and other properties of a raycasthit

Any help is appreciated!

Since you know hit.point you could do a Physics.CheckSphere() at that position with the radius of the object you want to instantiate there. If it returns true, you Checksphere a bit higher until it returns false. At that point, you can safely instantiate your object.