'encrypted:array', 'version_no' => 'integer', 'amount_min' => 'decimal:2', 'amount_max' => 'decimal:2', 'available_percentage' => 'decimal:2', 'submitted_at' => 'immutable_datetime', 'published_at' => 'immutable_datetime', 'expires_at' => 'immutable_datetime', 'next_action_due_at' => 'immutable_datetime', ]; /** @return BelongsTo */ public function sector(): BelongsTo { return $this->belongsTo(Sector::class); } /** @param Builder $query * @return Builder */ public function scopePublished(Builder $query): Builder { return $query->where('status', 'published')->whereNotNull('published_at')->where('published_at', '<=', now()) ->where(fn (Builder $q) => $q->whereNull('expires_at')->orWhere('expires_at', '>=', today())); } }