Dan Carter signs for four years