Users broadcast transactions into the network. Miners find and compete to validate blocks created every ten minutes by combining transactions. Who or what assembles the transactions into blocks every ten minutes?
Related: Setting the required number of leading 0s for the winning hash throttles the speed at which blocks, and therefore transactions, are validated. Who adjusts that number?