How do I stop my weapon from firing while reloading?

there is a bug to my script that if I spam clicks, my weapon can still fire while reloading any help? or anything I can do to fix this?

my Code:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Shotgunscript : MonoBehaviour
{
    public int damage = 50;
    public int ammoleft = 1;
    private int maxammo = 1;
    private float realoadtime = 2f;
    private bool isReloading = false;
    private bool readytofire = true;
    public float range = 100f;
    public Camera Camera;
    public ParticleSystem muzzleflash;


    private void Start()
    {
        ammoleft = maxammo;
    }
    private void Update()
    {
        if (Input.GetButtonDown("Fire1") && readytofire == true)
        {
            shoot(); 
        }

        if(ammoleft <= 0)
        {
            StartCoroutine(Reload());
            return;
        }

        if (isReloading)
        {
            return;
        }
    }

    private void shoot()
    {
        RaycastHit hit;
        RaycastHit hit_1;
        RaycastHit hit_2;
        RaycastHit hit_3;

        ammoleft--;
        muzzleflash.Play();
        if (Physics.Raycast(Camera.transform.position, Camera.transform.forward,out hit, range))
        {
            Debug.Log(hit.transform.name);
            muzzleflash.Play();
        }

        if (Physics.Raycast(Camera.transform.position, Camera.transform.forward, out hit_1, range))
        {
            Debug.Log(hit_1.transform.name);
            muzzleflash.Play();
        }

        if (Physics.Raycast(Camera.transform.position, Camera.transform.forward, out hit_2, range))
        {
            Debug.Log(hit_2.transform.name);
            muzzleflash.Play();
        }

        if (Physics.Raycast(Camera.transform.position, Camera.transform.forward, out hit_3, range))
        {
            Debug.Log(hit_3.transform.name);
            muzzleflash.Play();
        }
        readytofire = false;
             
    }

    private IEnumerator Reload()
    {
        isReloading = true;
        Debug.Log("Reloading");

        yield return new WaitForSeconds(realoadtime);

        ammoleft = maxammo;
        readytofire = true;
        Debug.Log("reloaded_finshed");
        isReloading = false;
    }

}

Move if (isReloading){return;} to the first line of Void Update{}.

It might be fixed by changing this

   if (Input.GetButtonDown("Fire1") && readytofire == true)
             {
                 shoot(); 
             }

to

if (Input.GetButtonDown("Fire1") && readytofire == true && isReloading == false)
         {
             shoot(); 
         }