Using the something_at convention instead of just a boolean is_something in Laravel models gives you visibility into WHEN a flag was changed – like when a product went live.
// MigrationSchema::table('products', function (Blueprint $table) {    $table->datetime('live_at')->nullable();}); // In your modelpublic function live(){    return !is_null($this->live_at);} // Also in your modelprotected $casts = [    'live_at' => 'datetime'];
Tip given by @alexjgarrett