Bike Lean - Rotating around Z?

I’m trying to get a Motorcycle to lean left, right and return upright when no key is pressed. Not sure why this isn’t working. The main problem is the bike doesn’t return to a 0 Z rotation. Any ideas?

 void BikeLean()
    {
        isPlayerTurning = false;
       
        if (Input.GetKey("a"))
        {
           
            isPlayerTurning = true;
            targetRotation = Quaternion.AngleAxis(15f, transform.forward) * transform.rotation;
            transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, smooth * Time.deltaTime);
            Debug.Log("Turning Left");

        }
        else if (Input.GetKey("d"))
        {
           
            isPlayerTurning = true;
            targetRotation = Quaternion.AngleAxis(-15f, transform.forward) * transform.rotation;
            transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, smooth * Time.deltaTime);
            Debug.Log("Turning Right");
        }
        else // level bike if not turning
        {

            targetRotation = Quaternion.AngleAxis(0f, transform.forward) * transform.rotation;
            transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, smooth * Time.deltaTime);

        }



    }

Kinda an older topic, but I solved it like this:

Quaternion targetRotation;
public float smooth;
public GameObject myObject;
float angle;

void Update()
{

if (Input.GetAxis("Horizontal") >= 0.1 && transform.position.z <= 15f)
{

    targetRotation = Quaternion.AngleAxis(100f, transform.right) * transform.rotation;
    transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, smooth * Time.deltaTime);
    Debug.Log("Turning Left");

}
else if (Input.GetAxis("Horizontal") <= -0.1 && transform.position.z >= -15f)
{

    targetRotation = Quaternion.AngleAxis(-100f, transform.right) * transform.rotation;
    transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, smooth * Time.deltaTime);
    Debug.Log("Turning Right");
}
else // level bike if not turning
{
    angle = myObject.transform.rotation.eulerAngles.x;
     targetRotation = Quaternion.AngleAxis(-angle, transform.right) * transform.rotation;
     transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, smooth * Time.deltaTime);
}

}