Как получить полный адрес поста и добавить его в базу?
Вам это не нужно. Достаточно добавить accessor в модель.
/**
 * Полный адрес поста.
 *
 * @return string
 */
public function getFullAddressAttribute()
{
    return url("/{$this->user_id}/post/{$this->id}");
}

// Использование
$post->full_address;
Нет, нельзя получить idшник поста, еще до того, ка пост был создан.

В данном случае сама задача получения "полного адреса поста" абсолютно бессмысленная.
Мало того что ссылка может со временем поменяться - например вместо ламерского протокола http будет настроен нормальный https - но, главное, это сама по себе бессмысленная операция - сохранять те данные, которые уже есть в базе. То есть этот урл легко генерируется при получении данных из базы.

Непонятно только, почему в коде отсутствует сохранение ид юзера.