In listing of data form is rendered when any input edited?

Hello,
In laravel 7 with livewire 1.3 and alpinejs2 I make listing of data with filter text input(it has wire:model.lazy defined) and “Search” button and I need to run search when “Search” button is clicked. But search is run when text input lose focus without clicking on “Search” button.

In my template with use of alpinejs2 I try to use it in this case, as when public var of component is changed:

<div class="card form-admin-facilities" x-data="adminFacilitiesComponent()">
    ...
    
    filter_name: {{$filter_name}}<br>
    ...
    temp_filter_name: <span x-html="temp_filter_name"></span><br>
    ...
    
    <fieldset class="bordered text-muted p-2 m-2">
        <legend class="bordered">Filters</legend>
        <div class="content_with_right_button" wire:model.lazy="filter_name">
            <div class="content_with_right_button_left_content" >
                <input
                    class="form-control admin_filter_input"
                    x-model="temp_filter_name"
                    
                    type="text"
                >
            </div>
            <div class="content_with_right_button_right_button pl-2" >
                <button class="btn btn-outline-secondary" @click="$dispatch('input', temp_filter_name)"  type="button">Search
                </button>
                <!-- In more complicated form can be several filter fields : text and select inputs -->
            </div>
        </div>
    
    </fieldset> <!-- Filters -->
    
    
    ...
    <script>
        function adminFacilitiesComponent() {
            return {
                temp_filter_name:'',

and in the component I defined public $filter_name var, which is used in render method :

   class Facilities extends Component
        {
            public $form= [
                'name'=>'',
            'descr'=> '',
            'created_at'=> '',
            'is_reopen'       => false,
        ];

            public $current_facility_id;
            public $filter_name= '';
            public $updateMode = 'browse';

            public function render()
        {
        \Log::info( '-1 render Facilities $this->filter_name ::' . print_r(  $this->filter_name, true  ) );
            $this->facility_rows_count = Facility
                ::getByName($this->filter_name, true)
        ->count();
            $backend_per_page = Settings::getValue('backend_per_page', CheckValueType::cvtInteger, 20);

            return view('livewire.admin.facilities.container', [
                'facilityDataRows' => Facility
            ::orderBy('created_at', 'desc')
        ->getByName($this->filter_name, true)
        ->paginate($backend_per_page),
            'facility_rows_count'=> $this->facility_rows_count
        ]);
        }

But it does not work as I expect : entering value in text input when this input lose focus
form is rendered again. I expected form to be rendered only when I click on “Search” button
and form will be rendered with new entered value. I do not use blur event for text input and
do not understand why the form is rendered when this input lose focus?

Which way is valid ?

Thanks!

I still search for a decision. How it can be implemented ? Who have similar issue : please share your expiernce.