*/ protected function casts(): array { return [ 'required' => 'boolean', 'summary_payload' => 'array', 'render_payload' => 'array', 'measured_at' => 'datetime', ]; } /** * @return BelongsTo */ public function tenantReview(): BelongsTo { return $this->belongsTo(TenantReview::class); } /** * @return BelongsTo */ public function workspace(): BelongsTo { return $this->belongsTo(Workspace::class); } /** * @return BelongsTo */ public function tenant(): BelongsTo { return $this->belongsTo(Tenant::class); } /** * @param Builder $query * @return Builder */ public function scopeRequired(Builder $query): Builder { return $query->where('required', true); } public function completenessEnum(): TenantReviewCompletenessState { return TenantReviewCompletenessState::tryFrom((string) $this->completeness_state) ?? TenantReviewCompletenessState::Missing; } }