Continuously rotating to target player.,Making enemy turret turn to face player after spawning

Whenever my enemy spawns it does not continuously target the player. It will target the original spawn point for the player but will not target the player as it moves. Please help.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RotateObject : MonoBehaviour
{
public float speed;

public Transform target;
public float attackRange;
public float turnRate;

private void Update()
{
    float distanceToPlayer = Vector3.Distance(transform.position, target.position);

    if (distanceToPlayer < attackRange)
    {
        //Turn towards target
        Vector3 targetDirection = target.position - transform.position;
        float angle = Mathf.Atan2(targetDirection.y, targetDirection.x) * Mathf.Rad2Deg - 90f;
        Quaternion q = Quaternion.AngleAxis(angle, Vector3.forward);
        transform.rotation = Quaternion.RotateTowards(transform.rotation, q, turnRate * Time.deltaTime);
    }
}

}
,I have been looking and looking and I cant seem to find an answer. In the script below I am trying to have the enemy turret always turn to face the Player. However, whenever it spawns it does not target the player when they start to move. It only faces the player when it first spawns and not continuously. Please help.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RotateObject : MonoBehaviour
{
public float speed;

public Transform target;
public float attackRange;
public float turnRate;

private void Update()
{
    float distanceToPlayer = Vector3.Distance(transform.position, target.position);

    if (distanceToPlayer < attackRange)
    {
        //Turn towards target
        Vector3 targetDirection = target.position - transform.position;
        float angle = Mathf.Atan2(targetDirection.y, targetDirection.x) * Mathf.Rad2Deg - 90f;
        Quaternion q = Quaternion.AngleAxis(angle, Vector3.forward);
        transform.rotation = Quaternion.RotateTowards(transform.rotation, q, turnRate * Time.deltaTime);
    }
}

}

You can try Transform.LookAt() in the update method.

Seems to be a LookAt situation. Try

 private void Update()
 {
     float distanceToPlayer = Vector3.Distance(transform.position, target.position);
     if (distanceToPlayer < attackRange)
     {
         //Turn towards target
         "yourturret".transform.LookAt(target);
     }
 }