No se puede lograr que el asociado de Laravel trabaje

No estoy muy seguro si entiendo elasociar método en Laravel. Entiendo la idea, pero parece que no puedo hacer que funcione.

Con este código (destilado):

class User
{

    public function customer()
    {
        return $this->hasOne('Customer');
    }

}

class Customer
{

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

}

$user = new User($data);
$customer = new Customer($customerData);

$user->customer()->associate($customer);

Yo tengo unCall to undefined method Illuminate\Database\Query\Builder::associate() cuando trato de ejecutar esto.

Por lo que puedo leer, lo hago exactamente como se indica en los documentos.

¿Qué estoy haciendo mal?

Respuestas a la pregunta(2)

Su respuesta a la pregunta