My reply is pretty late but i did find your question just a few days ago because i got the same error.
When laravel is changing the structure of a table (making your firstname nullable) the information for every column of the table is loaded and doctrine dbal has to calculate the difference between your actual version and your desired version. But doctrine is not aware of the citext data type so it is unable to calculate the needed sql queries for transforming your column. You have to write a type definition for the citext type so doctrine dbal does know how to handle the column.
As i said before i had the same problem, so i did make a package which adds all these postgresql specific column types to laravel so you can use in migrations without any problems: https://github.com/tpetry/laravel-postgresql-enhanced