Move Enemy to target position

my object doesn’t move at all (move towards), no collider, rigidbody or any script interfering with the movement… enemy isn’t a child object… i dont understand this at all, it should 100% work

   private void Update() {
        foreach (GameObject obj in spawnPos) {
            if (!Physics.CheckSphere(obj.transform.position, 0.5f, LayerMask.GetMask("Enemy"))) {
                spawnTimer += Time.deltaTime;
                if (spawnTimer >= respawnTime) {
                    enemy = Instantiate(enemyPref, transform.position, transform.rotation) as GameObject;
                    while (enemy.transform.position != obj.transform.position) {
                        print("test");
                        enemy.transform.position = Vector3.MoveTowards(transform.position, obj.transform.position, Time.deltaTime * 100);
                        break;
                    }
                    spawnTimer = 0;                
                }
            }
        }
    }

Looks like this code is wrong?

enemy.transform.position = Vector3.MoveTowards(transform.position, obj.transform.position, Time.deltaTime * 100);

Shouldn’t it be:

enemy.transform.position = Vector3.MoveTowards(enemy.transform.position, obj.transform.position, Time.deltaTime * 100);