For the box motion, one possibility could be to attach it to the player and so remove it as a physical object while held, just attach its rotation to the player (if that's possible, I use Godot, not what you're using). Another idea might be to simplify the box movement to have a move mode and a rotate mode so that it can move in straight lines but then be rotated when needed while stationary.
based on your idee to split process push mode and rotate mode, I split by angle the player push for let a free space only pushing, and two other for rotate positif and negatif (also I check colision box and player when the box rotate). It seem work more correctly like this :D thanks.
edit: but move the white box in a correct angle for laser look more dificulte now x')