How can Kruskal's algorithm return different spanning trees? We assume that we have the same graph G.

In introduction to Algorithms by Cormen it's said that it`s possible depending on how it breaks ties when the edges are sorted into order.

I have trouble visualizing the answer given:


  Suppose that A is an empty set of edges. Then, make any cut that has (u, v)
  crossing it. Then, since that edge is of minimal weight, we have that (u, v) is
  a light edge of that cut, and so it is safe to add. Since we add it, then, once
  we finish constructing the tree, we have that (u, v) is contained in a minimum
  spanning tree.


What does it mean to make a cut? I`m familiar with Kruskal's algorithm but nowhere in the process do I see cuts being made. It's either we unite two trees and add the edge to A or we reject the edge and continue on.
Cuts aren't made as part of Kruskal's algorithm; they are used in a proof that it always returns a minimum spanning tree. See e.g. here.

But you don't need them to answer the question in the title; instead, take as your graph a triangle with all 3 edges the same weight. Then any order on these edges is allowed and Kruskal's algorithm will return the tree consisting of the first 2 edges, whichever they are.