Если кому вдруг интересно, решил следующим образом. В самом элоквенте такой возможности нет, поэтому пришлось накостылить. Вообще логично, что если я указал для модели соединение, то и связи должны браться с того же соединения, а не с дефолтного. Не могут же быть таблицы одной бд связаны с таблицами другой (причем дефолтной, указать то нельзя)
Вот что пришлось добавить (4-й элоквент):
1.
public function newQuery()
{
// + вот это {
list(, $caller) = debug_backtrace(true, 2);
$connection = null;
if ( isset($caller['object']) && $caller['object'] instanceof self)
$connection = $caller['object']->connection;
// }
$builder = $this->newEloquentBuilder(
$this->newBaseQueryBuilder($connection) // + аргумент $connection
);
$builder->setModel($this)->with($this->with);
return $this->applyGlobalScopes($builder);
}
2.
protected function newBaseQueryBuilder($connection = null) // + аргумент
{
$conn = $this->getConnection($connection); // + аргумент
$grammar = $conn->getQueryGrammar();
return new QueryBuilder($conn, $grammar, $conn->getPostProcessor());
}
3.
public function getConnection($connection = null) // + аргумент
{
// + вот это {
if ( $connection )
$this->setConnection($connection);
// }
return static::resolveConnection($this->connection);
}
Всё работает, теоретически нигде не должны мешать эти добавления