You want to store something securely and don't care about getting the original value back (like passwords).
Hash::make($request->input('password')); // $2y$10$Kk0JK7CZ2rMFVf.uMysZHu2U4/7B4/XjydFJrs5ayiFMvyMWJyF2W
Use encryption if you want to get the original value back.
$encrypted = encrypt('hello'); // eyJpdiI6InNjTmxONXgxbjdDdDFzQnI2c1RCTFE9PSIsInZhbHVlIjoibjdtZjRuUmNxd285RkdSNlBycUtBZz09IiwibWFjIjoiN2MzZDU1ZGRhZmU4N2I1YmI4NTlmNTgzYzg1NjA5ZmRlMDQ4MWE0NTg2YWYzZmNmNzZlMzM3YzI4YjQwYWNlMCJ9
decrypt($enrypted) === 'hello'; // true
Use digital signatures to guarantee a message is authentic (like a token hasn't been tampered with).
Hash a message which becomes a signature for a message.
A JWT has 3 parts: a header, a payload, and a signature.
The signature is a hash of the header and payload combined. When clients send the token to the server, the server can verify if the JWT is authentic (hasn't been tampered with) by checking if the signature matches a hash of the header and payload.