You always define the relation both ways, it is important with cascading saves and deletes, and to know what are foreign key columns and how to treat them.
The foreign key (let's say "office_id") is always in the table that has the belongs_to, in this case User.
ORM enables cascading saves by default, so if you $office->save(), it will automatically save related objects, and ORM also deals with all foreign key business. So this is enough:
$office = Model_Office::query()->get_one();
$user = new Model_User( ... );
$office->user[] = $user; // for the relation office has many users
Normally your 'id' column is primary key, and defined as auto increment. Which means collisions can not occur because the database will assign the next free number.
If you already have a record with id '1' in your 'Users' table, how did it get there?
In your code it is not assigned a value, and the ORM will not invent one.
The only thing I can think of is an error in your relation definition, so that the ORM thinks it is a foreign key, and because of that it fills in the column?