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