I assume only adopts record is valid for a monster. I Assume you keep the old records around?
create an adopted relationship on monster?
Monster model
public function adopted()
{
return $this->hasOne(Adopt::class)->latest()->first();
//assuming model has timestamps
}
You should then be able to do $monster->adopted->name
but since the monster might not be adopted, you should adapt the name attribute on the monster with an accessor;
Monster.php
public function getNameAttribute()
{
if(!$this->relationLoaded('adopted'))
{
$this->load('adopted');
}
return $this->adopted->name ?? $this->name;
}
now you can just use $monster->name and you will get the adopted name or the original name if not adopted
if you have multiple adopt records for the same monster and you want to show the history then your existing adopts should be changed to a has many, and probably throw an orderBy on the end.