Can't get an enemy to chase a player using NavMesh

void Update () {

        if (Mathf.Abs(Vector3.Distance(this.transform.position, player.transform.position)) <= 6)
        {
            chase();
        }

    void chase()
    {
        this.transform.position = navMeshAgent.destination = player.transform.position;
        navMeshAgent.Resume();
    }

What happens is when I get into range both enemy and player will merge and start blazing away randomly in circles

You have set the max distance between the player and the enemy that makes the enemy chase the player.

Now you say that the enemy and player merge? So I would guess that means that the enemy is too close, and is clipping into the player.

Firstly, I think that the line:

this.transform.position = navMeshAgent.destination = player.transform.position;

Should be:

navMeshAgent.destination = player.transform.position;

Because I think you’re setting the coordinates of the enemy to the player’s, thus ignoring the navmesh, and just teleporting inside the player.

Finally, set a distance minimum distance between the enemy and player as well -so that the enemy stops moving towards the player when it gets too close.

Let me know how it goes.