Hi all. I am making a 3d side scroller. need to rotate gun on z axis to face mouse on x,y plane.

tried so many things. I am stumped Look at only seems to work for 180 degrees

void FixedUpdate()
{
screenPosition = Input.mousePosition;
screenPosition.z = 1; //mainCamera.nearClipPlane + 1;
worldPosition = mainCamera.ScreenToWorldPoint(screenPosition);
worldPosition.z = 0;

        //Angle?????

        

        transform.rotation = Quaternion.Slerp(rb.transform.rotation, Quaternion.Euler(0,0,angle), 0.7f);
}

This is What I have so far.