А в чем проблема-то?
2 сущности: User и Document. У Document есть user_id (тот, кто создал), receiver_id (тот, кто согласует), state (статус, new, confirmed, declined). Пользователь создает документ, назначает получателя. Получатель открывает список документов, в которых он является получатель и меняет state документу. State пользователь может менять только тем документам, в которых он receiver.
Можно ещё разные другие состояния добавить, типа draft (черновик), not_sent (документ написан, но на согласование не отправлен), sent (отправлен на согласование) и т. п.