'string', 'order' => 'integer', 'is_active' => 'boolean', ]; // Relation to user (optional) public function user() { return $this->belongsTo(User::class); } public function playlist(): BelongsTo { return $this->belongsTo(MusicPlaylist::class, 'playlist_id'); } public function tags(): BelongsToMany { return $this->belongsToMany(Tag::class, 'music_tag'); } protected $appends = ['url', 'image_url']; // Accessor for full URL public function getUrlAttribute() { return asset('storage/' . $this->file_path); } public function image() { return $this->belongsTo(Image::class, 'image_id'); } public function getImageUrlAttribute() { return $this->image ? asset('storage/' . $this->image->path) : null; } }