Once the respective cron with its functionality has been created, we can assign it a time, which the documentation says is its "execution time"
protected function schedule(Schedule $schedule)
{
$schedule->command('cron:job')
->everyMinute();
}
To execute the Laravel schedule, the server also needs a cron or scheduled task.
So, what is the function of the defined time ->everyMinute()
if the cron that will be executed by the server side will actually trigger the execution of our schedule, since our Laravel schedule does not behave like a queue (A command is executed once and it remains operative).
If I set my server side cron time to 1 hour, my laravel schedule would run every 1 hour, not every 1 minute as I have defined within the schedule.
The idea of Laravel's cron is that you create within your schedule , all the cron jobs that are going to be executed at the indicated times, and that on the server you only have to create one cron jobs , which will be executed every minute, firing your schedule, which will be in charge of managing the corn of your application and will determine when each cron should be executed .
With this you don't have to create more than one cron on your server to trigger each of the tasks that you need to execute in your application.