Nullify toilet bowling on small magnetic interferences

Well i am having a hard time dealing with toilet bowling, and most probably it have something related to magnetic interference which i am not able to compensate enough on my small 5 inch drone. In logs, mag x,y,z log always shows some constant small ripples in most flights, and on auto-analysis most of the time magnetic interference comes out to be around 10%, but still in some flights toilet bowling can be observed.

But one thing i didn’t get that in my case yaw is not changing more than 2 degrees in all the flights even during when there is toilet bowl, so it does not seems like toilet bowl will be cause due to change of yaw during magnetic interference in my case. But when it actually start making circles then mag x,y log looks like a large sinusoidal wave, but even still yaw does not change more than 2 degrees.

So when there is not much change of yaw data from compass, then how and why toilet bowling is causing? what making the drone to curve or making circles? i just want to know if there any way i can play around with this behaviour from ardupilot codebase, is there any way that i can make drone/compass respond slowly to magnetic interference so somehow i can nullify toilet bowling during small magnetic interference ?

On quads there is a compassmot option: have you tuned that?

Not properly yet, tried to tuned that via throttle only cause haven’t looked yet at how to use onboard current sensor, but that’s the one thing which is still in my to-do list and definitely gonna try it in upcoming days, but i’m not getting the feeling that even if i do that calibration properly via current sensor still this issue might not get resolve, that’s why i am trying to look for other ways simultaneously like dealing with codes which handles events and decisions when something doesn’t look right at magnetometer readings