Gradual Teleportation

I am using a script to teleport my player to a position I click on. I was trying to use that as a base for a potential grappling hook type thing. I can’t figure out how to change the speed so I gradually move to the target instead of getting there instantly. Make sense?

I’m relatively new to Unity and scripting so please explain the answer

Thank You in advance

My Code:

public class LookTeleport : MonoBehaviour
{
public RaycastHit lastRaycastHit;
public AudioClip audioClip;

void Start()
{
    Cursor.visible = false;
}
public GameObject GetLookedAtObject()
{
    Vector3 origin = transform.position;
    Vector3 direction = Camera.main.transform.forward;
    float range = 100000f;
    if (Physics.Raycast(origin, direction, out lastRaycastHit, range))
        return lastRaycastHit.collider.gameObject;
    else
        return null;
}
public void TeleportToLookAt()
{
    transform.position = lastRaycastHit.point + lastRaycastHit.normal * 2;
    if (audioClip != null)
        AudioSource.PlayClipAtPoint(audioClip, transform.position);
}

Vector3 go2;

 public void TeleportToLookAt()
 {
     go2 = lastRaycastHit.point + lastRaycastHit.normal * 2;
     if (audioClip != null)
         AudioSource.PlayClipAtPoint(audioClip, transform.position);
 }
void Update() {

        
        float speed = 20 * Time.deltaTime;
        transform.position = Vector3.MoveTowards(transform.position, go2 ,speed);
    }

Hi @Jrileyk
Did you figure it out?