Rigid body rotation based on player rotation [SOLVED]

The intention of my code is to have the assigned rigid body facing whatever direction the player is facing while locked to the y-axis, using torque. So if the player looks left, the rigid body follows, etc.

public void DetermineRotation ()
{
Vector3 rbDirection = new Vector3(0f, transform.rotation.y, 0f);
Vector3 playerDirection = new Vector3(0f, player.transform.rotation.y, 0f);

//get the angle between board direction and player direction
float angleDiff = Vector3.Angle(rbDirection, playerDirection);

//cross product, the axis of rotation to get from one vector to another
Vector3 cross = Vector3.Cross(transform.forward, player.transform.right);

//apply torque along the cross product according to the magnitude of the angle
rb.AddTorque(cross * angleDiff * amount, ForceMode.Force);
}

At the moment, the script in this state allows my intent to function, but to a fault, as the rigid body is aligned to the player’s right. I have tried many different combinations to produce different cross products, but have unable to find one that aligns rb.transform.rotation.y with player.transform.rotation.y. Any and all help is appreciated!

Well I just found it out myself, so I’m going to post my solution to help people who run into this issue in the future.

public void DetermineRotation ()
{
Vector3 rbDirection = new Vector3(0f, rb.transform.forward.y, 0f);
Vector3 playerDirection = new Vector3(0f, player.transform.forward.y, 0f);
Vector3 pDir = new Vector3(player.transform.forward.x, 0f, player.transform.forward.z);
Vector3 rbDir = new Vector3(rb.transform.forward.x, 0f, rb.transform.forward.z);

//get the angle between transform.forward and target
float angleDiff = Vector3.Angle(rbDirection, playerDirection);

//cross product, the axis of rotation to get from one vector to another
Vector3 cross = Vector3.Cross(rbDir, pDir);

//apply torque along the cross product according to the magnitude of the angle
rb.AddTorque(cross * angleDiff * amount, ForceMode.Force);
}

By creating a new vectors that only grab the x and z values from both rb.transform.forward and player.transform.forward, the cross product output is on the y-axis, enabling for 1 to 1 rigid body and player movement.