Instantiating 2 prefabs at the same position

I have a character that plants bombs. There is a bomb prefab with a sprite of a bomb and I have a prefab with an explosion particle. I’ve got it so it kind of lays the bomb next to the character’s position, and an explosion happens, but its always up and to the right of where the bomb was placed, and sometimes a bomb prefab isn’t visible though it shows it was instantiated…So I’m looking to plant the bomb right next to player instead of below and to the right, and I want the explosion to happen at the bomb’s position instead of above it and to the left. I’ll post the relevant code:

public GameObject Explosion;
public GameObject Bombs;
public Transform player;

    void Bomb() {      
            StartCoroutine(SetBomb());    
        }
 
    IEnumerator SetBomb() {
        var setBomb = false;
                  
            if (Input.GetButtonDown("Bomb"))
            {
                setBomb = true;
                var PlayerPos = player.position;
              
                var newBomb = GameObject.Instantiate(Resources.Load("Bombs"), PlayerPos, Quaternion.identity);
                GameObject.Destroy(newBomb, 1);

                yield return new WaitForSeconds(1);

                var newExplosion = GameObject.Instantiate(Resources.Load("Explosion"), PlayerPos, Quaternion.identity);
                GameObject.Destroy(newExplosion, 0.90f);
            }        
    }

I have Bomb() in Start() in case anyone was wondering.

What is the position of the bomb explosion prefab? Is it 0,0,0?

would it not make more sense for the bomb to handle the creation of it’s explosion?

i.e. player instantiates bomb. Bomb has script with timer and explosion prefabs. Seems like you’re trying to control everything centrally which isn’t really how OOP works.