Fry the bacon until crispy, then place on a paper towel to drain. A cast iron pan would be perfect for bacon.
While the bacon is frying, slice the tomato(s) as needed, all I get here is plum or Roma tomatoes, so for those I would figure about 3-4 slices for each sandwich. Then thinly slice your cheese, I use Mainland brand and it takes 3 slices to cover the bread, if using the same, you will need 12 slices. Feel free to use processed slices if you wish, then will need 4 slices.
When the bacon is cooked and drained and the tomato(s) and cheese sliced, time to assemble.
Heat another large pan on medium heat, I always use a non-stick for grilled cheese sandwiches. You want a pan large enough to place 2 slices of bread in the bottom.
While the pan is heating, spread butter on one side of all 4 slices of bread, lay them butter side up on the counter near your stove, and position the cheese slices, bacon, and tomato slices near the stove as well.
When the pan is hot, lay down 2 slices of bread, butter side down in the pan, top each slice top each with a cheese slice or if using cheese from a block, slices to cover the bread, then add 2-4 tomato slices, then add 3 strips of bacon, another slice of cheese, and finally the bread slice butter side up.
When the sandwiches are golden brown on the bottom, carefully flip and cook the other side until golden brown, this takes just a minute or two for each side. Remove from pan, plate and cut in half diagonally, serve.