Not sure if that will work but try to use RotateVectorAroundAxis on the player velocity and for angle use the number you get when you compare the two Z rotations of the portals. If you are also rotating some portals in X/Y you would also have to do the same for them.