This is my opinion: yearly is pretty crazy long time obviously. Something like that I would fire at least once a month. The command would actually check if it's been a year since etc to see if it actually executes what code needs to. In other words the when() is used in the command logic/code and not scheduler. Though redundantcey isn't always a bad thing.
I also log each command that fires into a db table with data like: actually fired, actually executed, exacuted success or fail (error) and any applicable output. Also I run a scheduled task for queue listen etc. so I add this in for any app that runs at least a queue. This will log if the queue was or wasn't running.
Yearly is an option too.
https://laravel.com/docs/5.3/scheduling#schedule-frequency-options
Make sure the cron is set and running from the docs. (Copy and paste).