You mention "blocks" and "block headers". These are two different things.
A "block" is a useful concept, metaphor, or abstraction. But at a really low level, a block is not necessary. The Block Header is necessary.
A transaction is "hashed into" a block header by including the hash of the transaction in a merkle tree and including the root of that merkle tree in the block header. There is no "block" in this process.
You mention "blocks" and "block headers". These are two different things.
A "block" is a useful concept, metaphor, or abstraction. But at a really low level, a block is not necessary. The Block Header is necessary.
A transaction is "hashed into" a block header by including the hash of the transaction in a merkle tree and including the root of that merkle tree in the block header. There is no "block" in this process.