why tansform.Translate is not working?

So im trying to make an enemy AI that when im close to him enough it will rotate and then follow me, the rotation is working but he is not following me.
Here is the code:

void Update () {
    if (Vector3.Distance (player.position, this.transform.position) < 10) {
        Vector3 direction = player.position - this.transform.position;
        direction.y = 0;
        this.transform.rotation = Quaternion.Slerp (this.transform.rotation, Quaternion.LookRotation (direction), speed * Time.deltaTime);
        anim.SetBool ("is_idle", false);
        if (direction.magnitude > 5) {
            this.transform.Translate (0, 0, 0.05f);
            anim.SetBool ("is_running", true);
            anim.SetBool ("is_attacking", false);
        } else {
            anim.SetBool ("is_attacking", true);
            anim.SetBool ("is_running", false);
        }
    } else {
        anim.SetBool ("is_idle", true);
        anim.SetBool ("is_running", false);
        anim.SetBool ("is_attacking", false);
    }
}

GameObject player;
public float tolerance;
public Vector3 v;
public Vector3 v2;

	float dist;
	
	// Use this for initialization
	void Start () {
		player = GameObject.Find ("player");
		if (tolerance == 0) {tolerance = 10;}//<--change rotation tollerance here

	}
	
	// Update is called once per frame
	void Update () {
		v2 = transform.forward;
		dist = Vector3.Distance (transform.position, player.transform.position);
		if (dist < 8f) {//<--change distance here
			
			v = player.transform.position - transform.position ;
			v=v.normalized;
			transform.rotation = Quaternion.LookRotation (Vector3.RotateTowards (transform.forward, v, 2 * Time.deltaTime, 0.0F));

			// you need to round off rotations cause there not going to match perfect
			// adjust tolerance variable at the top to trigger movement accordingly

v=new Vector3(Mathf.Round(v.x*tolerance),Mathf.Round(v.y*tolerance),Mathf.Round(v.z*tolerance));
v2=new Vector3(Mathf.Round(transform.forward.x*tolerance),Mathf.Round(transform.forward.y*tolerance),Mathf.Round(transform.forward.z*tolerance));

			if(v==v2){transform.position+=transform.forward*1*Time.deltaTime*3;}
		}
	}