How to integrate v3 invisible recaptcha to Magento 2.4.6 search

I have integrated recaptcha in search form but the issue is when user directly hit the search url like catalogsearch/result/?q=ring, there also i have integrate recaptcha. Please suggest some method. I have integrated it but when i search for the first time, it refreshes and redirect to homepage. Rest in second time it is working
Code of my form.mini.phtml

    <?php
$helper = $this->helper('MagentoSearchHelperData');
$objectManager = MagentoFrameworkAppObjectManager::getInstance();
$scopeConfig   = $objectManager->get(MagentoFrameworkAppConfigScopeConfigInterface::class);
$siteKey       = $scopeConfig->getValue(
    'recaptcha_frontend/type_recaptcha_v3/public_key',
    MagentoStoreModelScopeInterface::SCOPE_STORE
);
?>

<i id="searchIcon" class="search-icon icon-search "></i>
<div id="screen" class="search-screen">
  <div class="container">

    <form class="form minisearch" id="search_mini_form2" action="<?php echo $helper->getResultUrl() ?>" method="get">
      <div class="field search">
        <div class="search-input">
          <input id="search2"
                 data-mage-init='{"quickSearch":{
                      "formSelector":"#search_mini_form2",
                      "url":"<?php echo $block->getUrl('search/ajax/suggest'); ?>",
                      "destinationSelector":"#search_autocomplete"}
                 }'
                 type="text"
                 name="<?php echo $helper->getQueryParamName() ?>"
                 value="<?php echo $helper->getEscapedQueryText() ?>"
                 placeholder="<?php echo __('Search'); ?>"
                 class="search-box input-text"
                 aria-labelledby="search_autocomplete"
                 maxlength="<?php echo $helper->getMaxQueryLength();?>"
                 role="combobox"
                 aria-haspopup="false"
                 aria-autocomplete="both"
                 autocomplete="off"/>
          <div id="search_autocomplete" class="search-autocomplete"></div>
        </div>

        <!-- hidden field for v3 token -->
        <input type="hidden" name="g-recaptcha-response" id="recaptchaResponseSearch" />

        <div class="search-button">
          <button type="submit"
                  class="action search"
                  value="submit"
                  style="display: none;">
              <span><p style="display: none;">Search</p></span>
          </button>
        </div>
      </div>   
    </form>

    <!-- reCAPTCHA v3 API -->
    <script src="https://www.google.com/recaptcha/api.js?render=<?php echo $siteKey ?>"></script>
    <script>
    require(['jquery'], function($) {
        $(document).ready(function() {
            var $form = $('#search_mini_form2');
            var $input = $('#recaptchaResponseSearch');

            if (!$form.length || !$input.length) return;

            // Hook into quickSearch before AJAX request
            $form.on('submit', function(e) {
                e.preventDefault();

                // Generate reCAPTCHA token
                grecaptcha.ready(function() {
                    grecaptcha.execute('<?php echo $siteKey ?>', {action: 'search'}).then(function(token) {
                        $input.val(token);

                        // Now manually trigger quickSearch AJAX
                        if ($form.data('mage-init')) {
                            $form.trigger('search'); // triggers quickSearch submit
                        } else {
                            // fallback to normal submit
                            $form.off('submit'); // prevent loop
                            $form.submit();
                        }
                    });
                });
            });
        });
    });
    </script>

    <span class="close-icon"><i id="closeIcon" class="icon-close"></i></span>
  </div>
</div>

//Code of plugin  is 
namespace CustomSearchCaptchaPlugin;

use MagentoFrameworkAppActionAction;
use MagentoFrameworkAppRequestInterface;
use MagentoFrameworkAppObjectManager;
use MagentoFrameworkControllerResultFactory;
use MagentoStoreModelScopeInterface;

class SearchDispatchPlugin
{
    public function aroundDispatch(Action $subject, Closure $proceed, RequestInterface $request)
    {
        $module     = $request->getModuleName();
        $controller = $request->getControllerName();
        $action     = $request->getActionName();

        // Only for catalogsearch/result/index
        if ($module === 'catalogsearch' && $controller === 'result' && $action === 'index') {
            $token = $request->getParam('g-recaptcha-response');

            // Load dependencies only when needed
            $objectManager  = ObjectManager::getInstance();
            $scopeConfig    = $objectManager->get(MagentoFrameworkAppConfigScopeConfigInterface::class);
            $messageManager = $objectManager->get(MagentoFrameworkMessageManagerInterface::class);
            $resultFactory  = $objectManager->get(ResultFactory::class);

            if (!$token) {
                $siteKey = $scopeConfig->getValue(
                    'recaptcha_frontend/type_recaptcha_v3/public_key',
                    ScopeInterface::SCOPE_STORE
                );

                echo '<html><head><script src="https://www.google.com/recaptcha/api.js?render=' . $siteKey . '"></script>
                <script>
                grecaptcha.ready(function() {
                    grecaptcha.execute("' . $siteKey . '", {action: "search"}).then(function(token) {
                        let url = window.location.href;
                        if(url.indexOf("g-recaptcha-response") === -1) {
                            if(url.indexOf("?") > -1) {
                                url += "&g-recaptcha-response=" + token;
                            } else {
                                url += "?g-recaptcha-response=" + token;
                            }
                            window.location.href = url;
                        }
                    });
                });
                </script></head><body>Please wait... validating search...</body></html>';
                exit;
            }

            // If token exists, verify
            if (!$this->verifyRecaptcha($token, $scopeConfig)) {
                $messageManager->addErrorMessage(__('CAPTCHA verification failed. Please try again.'));
                $resultRedirect = $resultFactory->create(ResultFactory::TYPE_REDIRECT);
                $resultRedirect->setPath('/');
                return $resultRedirect;
            }
        }

        return $proceed($request);
    }

    protected function verifyRecaptcha($token, $scopeConfig)
    {
        $secret = $scopeConfig->getValue(
            'recaptcha_frontend/type_recaptcha_v3/private_key',
            MagentoStoreModelScopeInterface::SCOPE_STORE
        );

        $verifyUrl = 'https://www.google.com/recaptcha/api/siteverify';
        $response  = file_get_contents($verifyUrl . '?secret=' . $secret . '&response=' . $token);
        $result    = json_decode($response, true);

        return isset($result['success'], $result['score'], $result['action']) &&
               $result['success'] === true &&
               $result['score'] >= 0.5 &&
               $result['action'] === 'search';
    }
}