Salvation Army raises $4M toward goal