Текст можно получить таким образом:
$body = json_decode($bot->getRawBody(), true);
$message = isset($body['message']['text']) ? mb_strtolower($body['message']['text']) : '';
По поводу регистрации, можно, например, после ввода команды /register в БД хранить какой то флаг, который будет значить что пользователь ввел эту команду и соответственно сейчас он вводит логин.
Грубо говоря, до ввода команды запись в БД выглядит так:
user_id|reg_process
123 | 0
В этот момент считается что пользователь вводит все что угодно кроме логина.
Пользователь вводит команду /register и запись в таблице принимает вид:
user_id|reg_process
123 | 1
В этот момент считается что пользователь вводит только логин и каждое его сообщение обрабатывается какой то функцией по проверке логина.
Соответственно, при каждом полученном сообщении у вас идет проверка reg_process для конкретного user_id.