Heat a skillet over medium heat.
In a small bowl, mix the mashed avocado with garlic powder, salt, and pepper.
Spread the avocado mixture evenly on one side of each slice of bread.
On the unspread side of one slice, layer the shredded cheddar cheese. If using, add sliced tomatoes or spinach on top of the cheese.
Place the other slice of bread on top, avocado side down.
Spread half of the butter on the top slice of bread.
Carefully place the sandwich in the skillet, butter side down.
Cook for about 3-4 minutes, or until golden brown.
While cooking, spread the remaining butter on the top slice of bread.
Flip the sandwich and cook for another 3-4 minutes until the cheese is melted and the other side is golden brown.
Remove from the skillet, slice in half, and serve warm.