public function getIndexForNumber($discussionId, $number, User $actor = null)
{
$query = Discussion::find($discussionId)->postsVisibleTo($actor)->where('time', '<', function ($query) use($discussionId, $number) {
$query->select('time')->from('posts')->where('discussion_id', $discussionId)->whereNotNull('number')->take(1)->orderByRaw('ABS(CAST(number AS SIGNED) - ' . (int) $number . ')');
});
return $query->count();
}