'boolean', 'starts_at' => 'datetime', 'ends_at' => 'datetime', 'created_by' => 'integer', 'updated_by' => 'integer', ]; public function creator() { return $this->belongsTo(User::class, 'created_by'); } public function updater() { return $this->belongsTo(User::class, 'updated_by'); } public function scopeActive($query) { $now = now(); return $query->where('is_active', true) ->where(function ($q) use ($now) { $q->whereNull('starts_at') ->orWhere('starts_at', '<=', $now); }) ->where(function ($q) use ($now) { $q->whereNull('ends_at') ->orWhere('ends_at', '>=', $now); }); } }