Detect Multiple Collisions

I’m making a brick breaker game, and to make the ball bounce off the bricks, I’m just reversing the speed component of the ball in either X or Z (for bouncing off the sides or top/bottom). The only problem is, the ball is large enough to contact two bricks at the same time, and when it does that, the collision function is called twice, reversing the speed twice, so the ball goes straight instead of bouncing.

Is there a way to detect whether the ball hit multiple bricks and only run the procedure once?

To detect the colliders, you can use Physics.OverlapSphere.

private Collider colliders;

colliders = Physics.OverlapSphere(player.transform.position, 0.7f);

foreach(Collider colliderObject in colliders){

       //Game Logic


with the use of colliders, you can get the colliders nearer to your player object and you can handle to each object in foreach loop. if you want to increase the OverlapSphere radius with change of value of 0.7 to other.
With the each object you can handle each object independently like speed and other things.