Eloquent - Relacionamento de carregamento ansioso

Estou tentando descobrir como carregar dados rapidamente de uma tabela relacionada. Eu tenho 2 modelosGroup eGroupTextPost.

Group.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Group extends Model
{
    protected $table = 'group';

    public function type()
    {
        return $this->hasOne('\App\Models\GroupType');
    }

    public function user()
    {
        return $this->belongsTo('\App\Models\User');
    }

    public function messages()
    {
        return $this->hasMany('\App\Models\GroupTextPost');
    }
}

GroupTextPost.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class GroupTextPost extends Model
{
    protected $table = 'group_text_post';

    public function user()
    {
        return $this->belongsTo('\App\Models\User');
    }

    public function group()
    {
        return $this->belongsTo('\App\Models\Group');
    }
}

O que estou tentando fazer é carregar ansiosamente ouser ao buscar postagens de texto em grupo para que, quando eu recebo as mensagens, o nome do usuário seja incluído.

Eu tentei fazê-lo assim:

public function messages()
{
    return $this->hasMany('\App\Models\GroupTextPost')->with('user');
}

... e chamando assim:

$group = Group::find($groupID);
$group->messages[0]->firstname

Mas eu recebo um erro:

Unhandled Exception: Call to undefined method Illuminate\Database\Query\Builder::firstname()

Isso é possível com o Eloquent?

questionAnswers(3)

yourAnswerToTheQuestion