how to stop agent when target is unreachable unity

hello everybody

i want my player characters stop when target is unreachable.

plaese watch this video.

as you can see in this video, the agents don’t stop when target is unreachable

and this is my simple code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
using UnityStandardAssets.Characters.ThirdPerson;

public class PlayerController : MonoBehaviour {
    public Camera cam;

    public NavMeshAgent agent;

    public ThirdPersonCharacter character;

    private LineRenderer linerenderer;
    
    bool isMoving = true;
    // Start is called before the first frame update
    void Start()
    {
        agent.updateRotation = false;
        linerenderer = GetComponent();
    }

    Vector3 hitPos = Vector3.zero;
    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0)) {
            Ray ray = cam.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;

            if (Physics.Raycast(ray, out hit)) {
                agent.destination = (hit.point);
                hitPos = hit.point;
            }
        }

        if (agent.path.status == NavMeshPathStatus.PathInvalid || agent.path.status == NavMeshPathStatus.PathPartial) {
            character.Move(Vector3.zero, false, false);
            agent.velocity = Vector3.zero;
            agent.isStopped = true;
            agent.ResetPath(); 
            linerenderer.enabled = false;
        } else {
            character.Move(agent.desiredVelocity, false, false);

            linerenderer.positionCount = agent.path.corners.Length;
            linerenderer.SetPositions(agent.path.corners);
            linerenderer.enabled = true;
        }
    } }

@mojtaba_unity
You could try using NavMeshAgent.hasPath:

Idk if it works but it might help

Edit:
Either that or
NavMeshAgent.path.status