Procedural Recoil

Currently I’m trying to make a procedural/predictive recoil system similar to that of Escape From Tarkov and this video here: https://www.youtube.com/watch?v=QfHxg5u-8Sc&ab_channel=neverGonnaneverGonna
How I’m applying recoil right now is through my IK setup using virtual bones. At the end of the chain I add location/rotation to the final position that modifies the right hand. Each time I shoot I create a vector for where I want the peak of the recoil to be (currently just pulling the gun rearward a bit), then I use spring interpolation to interpolate to that position, once it has reached 80% of the interpolation completed I then generate a random rotator (just pitch and tiny bit of yaw/roll) which then starts interpolating. Once the vector interpolation reaches 100% of the spring interpolation it then interpolates back to its normal position so it should be resetting while the rotation is still being applied. This is my most recent attempt at this and I am not happy at all with the results and have been trying to think of some new ways to go about achieving this. Do you guys have any suggestions? The results in the linked video are beautiful to me, but I cant think of how to implement that in a realistic manner.