rotation Ingame

hi, i’m kinda stuck on my project. as u can see i’m trying to make my player object to rotate on its own axis when its within a certain angle. i’ve tried a lots of method as u can see from my codes. it does not get the result i want, which is the object will rotate along with the time. meaning it will not just transform to that rotation but with the slight “animation” to show that it is rotating.

below is my codes

void CheckDirection()
{
    //upPosition = transform.position;
    //upPosition.x -= 1;
    //Transform upDirection = transform;
    //upDirection.LookAt(upPosition);
    
    //Debug.Log("rota" + transform.rotation);
    //Debug.Log(Vector3.Angle(gameObject.transform.position, Input.mousePosition));
    //float angle = Vector3.Angle(gameObject.transform.position, Input.mousePosition);
    //gameObject.transform.Rotate(gameObject.transform.localPosition, angle);
    //Debug.Log(transform.localEulerAngles.y);
    if (transform.localEulerAngles.y > 270f && transform.localEulerAngles.y < 300f)
    {
        float value = (300.0f - transform.localEulerAngles.y) / 30.0f;
        //transform.eulerAngles = Vector3.Lerp(transform.eulerAngles, upDirection.eulerAngles, value);

        secondPos = firstPos = target.transform.localEulerAngles;
        secondPos.z = -90;
        target.transform.localEulerAngles = Vector3.Lerp(firstPos, secondPos, value);

        /*
        temp = target.transform.localEulerAngles;
        temp.z = (transform.localEulerAngles.y + 270.0f)* 3;
        
        //temp.z = 90;
        //target.transform.localEulerAngles = temp;*/

        //temp = target.transform.localEulerAngles;
        //temp.z = -90;
        //target.transform.position = Vector3.Lerp(target.transform.localEulerAngles, temp, value);
    }
    else if (transform.localEulerAngles.y > 240f && transform.localEulerAngles.y < 270f)
    {
        temp = target.transform.localEulerAngles;
        temp.z = -90;
        target.transform.localEulerAngles = temp;
    }
    else if (transform.localEulerAngles.y > 60f && transform.localEulerAngles.y < 90f)
    {
        temp = target.transform.localEulerAngles;
        temp.z = -90;
        target.transform.localEulerAngles = temp;
    }
    else if (transform.localEulerAngles.y > 90f && transform.localEulerAngles.y < 120f)
    {
        temp = target.transform.localEulerAngles;
        temp.z = -90;
        target.transform.localEulerAngles = temp;
    }
    else if (transform.localEulerAngles.y > 120f && transform.localEulerAngles.y < 270f)
    {
        temp = target.transform.localEulerAngles;
        temp.z = 180;
        target.transform.localEulerAngles = temp;
    }
    else
    {
        temp = target.transform.localEulerAngles;
        temp.x = 0;
        temp.y = 0;
        temp.z = 0;
        target.transform.localEulerAngles = temp;
    }

}

Use RotateTowards. And delete your other duplicate of this question.