Заполнить связи много ко многим, а потом сохранить

Ситуация:

Есть код, где модели постепенно заполнялись данными, а потом, когда все данные для всех свойств были получены и присвоены свойствам, модели сохранялись.

Потом был рефакторинг и один ко многим стал многие ко многим.

В этой ситуации так поступить уже не получится? Есть ли возможность сделать например так:


$book = new Book();

$book->title = 'Том Сойер';


$category = new Category();

$category->title = 'книги Твена';

        

$book->populateRelation('categories', $category);

$category->populateRelation('books', $book);


//потом заполнять ещё свойства


//потом заполнить ещё другие связи многие-ко многим, которые прямо сейчас ещё нельзя сохранить 

//потому что они не заполнены до конца и сработает констрейнт not null


//и наконец

$book->save();

$category->save();