SubmissionStatus::class, 'submitted_at' => 'datetime', 'score' => 'decimal:2', ]; } public function registerMediaCollections(): void { $this->addMediaCollection('submission_file')->singleFile(); } public function assignment(): BelongsTo { return $this->belongsTo(Assignment::class); } public function student(): BelongsTo { return $this->belongsTo(Student::class); } protected function fileUrl(): Attribute { return Attribute::make( get: fn () => $this->getFirstMediaUrl('submission_file') ?: null, ); } protected function fileName(): Attribute { return Attribute::make( get: fn () => $this->getFirstMedia('submission_file')?->file_name, ); } }