Game doesn't destroy objects in order?

So I’ve made a script where if an object with a certain tag hits the collider, it gets destroyed. There are multiple objects with this tag. The problem is when an object hits this collider, another object gets destroyed with that tag.

How can I make it that when the object that hits the collider gets destroyed and not another object with the same tag?

void OnTriggerEnter2D(Collider2D collider) {
		death = true;
		
			Score.AddPoint ();

		Destroy (GameObject.FindWithTag ("coin"));


	
	}

// This is triggered on e.g. a player MonoBehaviour
void OnTriggerEnter2D(Collider2D other)
{
// when the trigger we are colliding wih has a “coin” tag
if (other.CompareTag(“coin”))
{
// then destroy the coin
Destroy(other.gameObject);
// and add a point to the score
Score.Addpoint();
}
}

	// Or put this on the coin
	void OnTriggerEnter2D(Collider2D other)
	{
		// When the other collider is tagged with player
		if (other.CompareTag("Player"))
		{
			Player player = other.GetComponent<Player>();
			// and we actually find a reference to its MonoBehaviour
			if(player != null)
			{
				// Add a point to the player
				player.AddPoint();
				// And destroy this.
				Destroy(this.gameObject);
			}
		}
	}