unity – Why the player is not rotating to the opposite direction?

This is before rotating the player is facing the target :

Facing target

Then rotating but not facing me the player it seems like it’s not finishing the rotating ?

When the rotating ended

In the script in the Update :

private void Update()
    {       
        if(rot)
        {
            StartCoroutine(ScaleOverSeconds(player.localScale,
                new Vector3(0, 180, 0), player.localPosition, 1.5f));
            rot = false;
        }
    }

Then :

public IEnumerator ScaleOverSeconds(Vector3 scaleTo, Vector3 rotateTo, Vector3 moveTo, float seconds)
    {
        float elapsedTime = 0;
        Vector3 startingScale = player.localScale;
        Vector3 startingRotation = player.localEulerAngles;
        Vector3 startingPosition = player.localPosition;

        while (elapsedTime < seconds)
        {
            player.localScale = Vector3.Lerp(startingScale, scaleTo, (elapsedTime / seconds));
            player.localEulerAngles = Vector3.Lerp(startingRotation, rotateTo, (elapsedTime / seconds));
            player.localPosition = Vector3.Lerp(startingPosition, moveTo, (elapsedTime / seconds));

            elapsedTime += Time.deltaTime;

            yield return null;
        }
        player.localScale = scaleTo;
        player.localEulerAngles = rotateTo;
        player.localPosition = moveTo;
    }

In this case, I want the player only to rotate without scaling or changing position so I used layer.localScale and the player.localPosition when starting the Coroutine.