Particle System isn't playing

I am trying to make a muzzle flash for a gun with the script below… If I don’t move my player at the start of the game, the particle system plays correctly. As soon as I move it though, the particle effect won’t play anymore. How can I fix this?

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class Gun1 : MonoBehaviour
{
public float lookRadius = 10.0f;
public Transform target;
public GameObject gun;
public ParticleSystem muzzleFlash;

// Start is called before the first frame update
void Start()
{
    
}

// Update is called once per frame
void Update()
{
    float distance = Vector3.Distance(target.position, transform.position);

    if (distance <= lookRadius)
    {
        if (Input.GetButtonDown("Fire1"))
        {
            Shoot();
        }
    }

    if (distance <= lookRadius)
    {
        Vector3 direction = (target.position - transform.position).normalized;
        Quaternion lookRotation = Quaternion.LookRotation(new Vector3(direction.x, 0, direction.z));
        transform.rotation = Quaternion.Slerp(transform.rotation, lookRotation, Time.deltaTime * 5f);
    }
}

void Shoot()
{
    muzzleFlash.Play();

    RaycastHit hit;
    if (Physics.Raycast(gun.transform.position, gun.transform.forward, out hit))
    {
        Debug.Log(hit.transform.name);
    }
}

void OnDrawGizmosSelected()
{
    Gizmos.color = Color.blue;
    Gizmos.DrawWireSphere(transform.position, lookRadius);
}

}

The particle system won’t move, you may have to Instantiate the particle in world space