The miners decide whether a transaction will be included in the block.
What information do miners have about unconfirmed transactions?
How can I know, in detail, what transactions are going to be included in the block?
You can see what a miner sees at this very moment, provided that your wallet is synched, by calling
getrawmempool true in your bitcoin console. What you'll get is broadcasted transactions not yet included in a block.
In short, miners scan this list and then allow the valid transactions with a higher fee to be included first in the block they are about to mine.