one way is using Coroutines use start Coroutine to start the disable function and it will be in that function till animation finishes then it will destroy your game object
When you call the animation to play after that start a coroutine that will wait for required seconds and then deactivate the object.
Psuedo-code:
void PlayAnimation()
{
// You play your animation here
// Now you call the coroutine
StartCoroutine("DeactivateObject");
}
IEnumerator DeactivateObject()
{
yield return new WaitForSeconds(TimeRequiredToPlayAnimation);
// Deactivate the game object
gameObject.SetActive(false);
}