Laravel 5: How to validate querystring?

That isn’t a security matter - it is one of using the correct type of call for what you are trying to do.

A GET call is assumed to be retrieving data and not changing anything. Browsers will often cache the value returned from a GET call in order to avoid needing to call the server again as the value can be assumed to be unchanged from when the previous call was made.

A POST call may update something on the server and so will never have anything cached as a repeat of the same call may be dealing with completely different data on the server.

For more information on how the different HTTP methods are intended (and presumed by browsers and servers) to be used see http://restcookbook.com/HTTP%20Methods/idempotency/