Cook the bacon in a large skillet over medium heat for 8-10 minutes, flipping throughout.
Remove the bacon from the skillet, cut each slice of bacon in half and set aside.
Spread 1 tbsp butter on each slice of bread. On the opposite side of one slice of bread, add ¼ cup gruyere cheese, two slices of bacon, tomatoes and spinach leaves.
Spoon the avocado on top of the spinach, then place the remaining two slices of bacon on top, with the remainder of the gruyere cheese. Place the other piece of bread, butter side facing out, on top of the cheese.
Heat a large skillet on the stove over medium heat. Once heated, add the grilled cheese sandwich and cook for 2-3 minutes per side.