This is an extremely bad design in my opinion. You should not use json_columns to store anything you need to search on.
While using json might appear as a quick solution now, it surely will not be quick in the long run.
It will also affect the performance of the database since you can't really index a json column.
Let just say that you want to get a list of all the users that have their birthday between two dates.
This is pretty easy to do with a regular field and if you have thousands of users it will slow down and to speed it back up again you add an index one the date of birth field.
To do something similar for a json column you need to use stored generated columns which I don't think is supported by laravel's migration.
https://stackoverflow.com/questions/38389075/how-to-create-index-on-json-column-in-mysql
So basically you still need to create every single field anyway in your migration or at least the ones you need to index.
I will try to make you understand that json columns might seem like a simple and good solution but it's generally not a good one or a simple one. There are no shortcuts to a good database design and that a bad decision now will affect your application in for a long time. It's much better to make a good design now that scales well and can be made more performant in more ways than just throwing money at the problem. You also need to think a bit about the future. I a year new demands or needs has been requested from the users and you need to extract/add/remove/modify some part of the application.
I suggest the you read the best answer on this stackoverflow thread
https://stackoverflow.com/questions/33437940/json-column-or-traditional-columns