While Laravel has had the ability to cast your data to and from JSON since version 5.0, it was previously just a convenience—your data was still just stored in a TEXT field. But MySQL 5.7 introduced an actual JSON column type.
Laravel 5.3 introduces a simple syntax for lookups and updates based on the value of specific keys in your JSON columns.
If you’re going to use this functionality, you should also read Mohamed Said‘s post on how to improve performance by using MySQL generated columns.
JSON columns cannot be indexed. You can work around this restriction by creating an index on a generated column that extracts a scalar value from the JSON column.