I had a horse like that and all I had to do was carry a crop on my inside hand, never used it, just had to have it in my hand.
More leg yields pushing out and in with your leg then try at the trot then canter until you gain control
Keep a steady outside rein and inside leg, then ask to pick up the canter. Or you could even canter a circle before hand. Waiting to pick the canter up on corners will help too, because your horse will have to prepare for the turn before they can think about cutting in. Once you have made it clear that your horse isn't going to get away with that, it won't happen. If those things don't work, try something new! Every horse is different.
!!!inside leg to outside rein!!!! Open your outside rein, flex your horse in, outside leg back so his haunches are to the inside and then inside leg at the girthmoving him over. If he is shaped correctly it will be very difficult for him to fall in. Leg yield him out before the transitions and then ask.
I would try using my inside leg before and during the transition but also be aware that your weight and body position may be affecting this. Try shifting your weight to the outside and pulling your shoulders back and together to make sure your sitting straight.
Before you ask fot the canter put your inside leg on to give him a limit. My Mare was famous for this when I first got her. She was trained very well and was testing me. If she cuts in make her go right around like " ok you want to go this way then let's go this way " right around 360 and on your way again.
Kick on the inside leg. Pick you inside rein on and make him stay on the rail. My horse did that and now she stays on the rail
What I do with horses that do that is the exact opposite than what he wants to do which is: do a circle in the opposite direction of where he is going. He should slow down because you are doing a circle and it will teach him not to cut. Try this! It has worked for me!