How to transform my character to the position of the stopped instantiated object?

So I want to make my character shoot spheres ,and when the sphere stops moving I want my character to teleport to the position ot the ball and then to Destroy() the clone objects.But when I made the script it just instantiate an object and teleports my character to y+1.Could anyone help me with this problem.Here’s a sample of the code:
#pragma strict

var Sphere : Transform;
var speed=2000;
var Player : Transform;
 
 function Update (){
  //find out if the mousebutton is pressed
      if(Input.GetButtonDown("Fire1"))
          {   
          //create the prefab
      
     var  clone =Instantiate(Sphere,transform.position,Quaternion.identity); 
              //add force to the prefab
              clone.rigidbody.AddForce(transform.forward*speed);
             
              if(clone.rigidbody.velocity.sqrMagnitude < .01  ){
           Player.position=new Vector3(clone.position.x,clone.position.y,clone.position.z);
           
            
            
               }
             }          
           }

Try this:

#pragma strict

var sphere : Transform;
var speed : float = 2000;
var player : Transform;

private var clone : Transform;
private var isCloneInstantiated : boolean;

function Update () {

	if (Input.GetButtonDown("Fire1")) {
		//create the prefab
		clone = Instantiate(sphere, transform.position, transform.rotation);
		
		isCloneInstantiated = true;
		
		//add force to the prefab
		clone.rigidbody.AddForce(transform.forward*speed);;
	}
	
	//if clone is instantiated then check whether it is stopped.
	if(isCloneInstantiated && clone.rigidbody.velocity.sqrMagnitude < 0.01){
		 isCloneInstantiated = false;
		 player.position=clone.position;
		 Destroy(clone.gameObject);
	}
		
}